Showing posts with label application. Show all posts
Showing posts with label application. Show all posts

Sunday, March 25, 2012

connection problem

Hi

I want to connect a VB6 application to a sql express 2005 database. My database is on a server with windows 2003 server and my application is running on a windows XP machine. I try to use ado and almost all connection string i saw on internet, the best i got is the error:

connection failed

SQLState '01000'

SQL Server error: 53

SQL Server does not exist or access denied.

even if i use the same server name and authentification as in the microsoft sql server management studio express.

This is my code:

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

cn.Properties("Prompt") = adPromptAlways
cn.Open "Driver={SQL Server};Server=server\sqlexpress;DataBase=master;"

thanks

Ben

Hi,

did you try to specify explictly the authentication mode ?

Trusted connection:

"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes;"

(From www.connectionstrings.com)

Otherwise you could also try to use the ADO connectionstring rather than the ODBC one.

Make sure that you configured remote connections for the Server to connect to.

HTH, jens Suessmeyer.

http://www.sqlserver2005.de

|||

thanks for your answer.

I try to run the same code on my server (that host the db)... and it work . So, my problem is with the remote part. My server and client machine are both on a lan, without a domain controler. I can manage my server throught my client computer using remote desktop so it's not a lan problem.

i try both Trusted_Connection and not .

I use that configuration in connection string : Server = [server_name]\sqlexpress

>Make sure that you configured remote connections for the Server to connect to.

I enabled all protocols in sql server 2005 Network configuration, something else to do ?

Thanks

|||

SQL Express has remote connections turned off by default; it sounds like you need to enable them. Check out the BLOG posting on this topic at http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx

Regards,

Mike Wachal - SQL Express team

|||

For those of you who want the complete solution :

Using Ado in VB6

The code :

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Properties("Prompt") = adPromptAlways
cn.Open "Driver={SQL Server};Server=server\sqlexpress,2301;DataBase=master;uid=dbuser;password=pass;databasename=master;"

'2301 is the port number (TCP port, explain later)

Setting on server :

go to:

http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx?notification_id=1414271&message_id=1414271

and i do step 1, 2 OPTION A

You need to create (or use one that is already create) a user that has enought privilege on the table and database you want to use. Use SQL server management studio.

Now you can use that solution in your VB client program to acess remotely your database server.

Thanks a lot Mike and Jens ! and all SQL Express Team

|||for all fellow javascript, j#, c#, c++ programmers out there: remember vb "server\sqlexpress" = "server\\sqlexpress" in our languages!

connection problem

Hi

I want to connect a VB6 application to a sql express 2005 database. My database is on a server with windows 2003 server and my application is running on a windows XP machine. I try to use ado and almost all connection string i saw on internet, the best i got is the error:

connection failed

SQLState '01000'

SQL Server error: 53

SQL Server does not exist or access denied.

even if i use the same server name and authentification as in the microsoft sql server management studio express.

This is my code:

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

cn.Properties("Prompt") = adPromptAlways
cn.Open "Driver={SQL Server};Server=server\sqlexpress;DataBase=master;"

thanks

Ben

Hi,

did you try to specify explictly the authentication mode ?

Trusted connection:

"Driver={SQL Server};Server=Aron1;Database=pubs;Trusted_Connection=yes;"

(From www.connectionstrings.com)

Otherwise you could also try to use the ADO connectionstring rather than the ODBC one.

Make sure that you configured remote connections for the Server to connect to.

HTH, jens Suessmeyer.

http://www.sqlserver2005.de

|||

thanks for your answer.

I try to run the same code on my server (that host the db)... and it work . So, my problem is with the remote part. My server and client machine are both on a lan, without a domain controler. I can manage my server throught my client computer using remote desktop so it's not a lan problem.

i try both Trusted_Connection and not .

I use that configuration in connection string : Server = [server_name]\sqlexpress

>Make sure that you configured remote connections for the Server to connect to.

I enabled all protocols in sql server 2005 Network configuration, something else to do ?

Thanks

|||

SQL Express has remote connections turned off by default; it sounds like you need to enable them. Check out the BLOG posting on this topic at http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx

Regards,

Mike Wachal - SQL Express team

|||

For those of you who want the complete solution :

Using Ado in VB6

The code :

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Properties("Prompt") = adPromptAlways
cn.Open "Driver={SQL Server};Server=server\sqlexpress,2301;DataBase=master;uid=dbuser;password=pass;databasename=master;"

'2301 is the port number (TCP port, explain later)

Setting on server :

go to:

http://blogs.msdn.com/sqlexpress/archive/2005/05/05/415084.aspx?notification_id=1414271&message_id=1414271

and i do step 1, 2 OPTION A

You need to create (or use one that is already create) a user that has enought privilege on the table and database you want to use. Use SQL server management studio.

Now you can use that solution in your VB client program to acess remotely your database server.

Thanks a lot Mike and Jens ! and all SQL Express Team

|||for all fellow javascript, j#, c#, c++ programmers out there: remember vb "server\sqlexpress" = "server\\sqlexpress" in our languages!

Connection pooling problem

Can anybody help me to solve this problem

I have a web application. In this app i have one class genral for database transections. I create new object of this class on every page in page load event & dispose it on UnLoad event. After sometime this app gives connection pooling exception.

Means connection are not closed, but i disposed the object like

tmpDatabase.Dispose()
tmpDatabase = Nothing

Plz can anybody tell me the mistake i m doing.

ThanxPersonally, I would contruct the object as late as possible (where needed) and destroy the object as soon as possible, and let connection pooling work as designed.

Perhaps there is som error condition that you are not handling, so that the dispose is sometimes not reached.|||I can see using Break point, it destroying the object. Means cursor reaching to the line where the object is destroyed.|||Please Help me

This is big problem for my application. I dont know what i doing wrong.|||"This is big problem for my application. I dont know what i doing wrong."

We do not either. In general, there is some reason why your connections are not being closed. Could be an error condition not properly handled, could be a design problem. Absent seeing much of the code, and absent you taking my advice to make the Open and Close very close to each other, leaving the connection open for as short a time as possible rather than creating one for a page load/unload cycle, I do not think anyone can help you.

Connection pooling not working in Clustered Env.

Hi,
We had deployed a .NET application in a non clustered environment with conection pooling and was working fine. Now we had moved to a clustered env and connection pooling stopped working. Is there any cluster aware setting that we need to look at. Please let me know your thoughts.
Thanks in advanceCan you be more specific on what went wrong? Any error code, exception stack will be helpful.sqlsql

Thursday, March 22, 2012

Connection pooling and recordsets

Hi,
I am trying to speed up database operations of an application. The
app is separated from the SQL Server database by a WAN and they talk
through ODBC.
Operations are as slow as cold molasses.
Today I am looking at the option of enabling connection pooling. But
from what I read, I am pessimistic about whether it helps in my case.
Could some of you guys confirm my understanding?
The application opens 3 databases and keeps them open for the duration
of the program, closing them just before exiting. Meanwhile
recordsets are opened, data is retrieved, and recordsets are closed by
the dozen. It is these recordset operations that are taking their
sweet time.
Based on this scenario, am I correct to say that connection pooling
will play a a negligible effect on the application's performance?
(Because only 3 connections are done).
Thanks for any help.
-fds
I'd say you were correct. If you're keeping connections open for the
duration, then they'll never get closed and returned to the pool.
Connection pooling helps in distributed applications where connections
are continuously opened and closed, not where they're just held open
all the time. You also need to have identical connection strings and
security credentials to derive any benefit from connection pooling.
Remember that no matter what you do, you can only go as fast as the
wire permits. In your case, you may derive more benefit from
techniques that minimize the amount of data that travels over the WAN
on each call.
--Mary
On 5 Nov 2004 08:27:21 -0800, francisds@.hotmail.com (Francis DS)
wrote:

>Hi,
>I am trying to speed up database operations of an application. The
>app is separated from the SQL Server database by a WAN and they talk
>through ODBC.
>Operations are as slow as cold molasses.
>Today I am looking at the option of enabling connection pooling. But
>from what I read, I am pessimistic about whether it helps in my case.
>Could some of you guys confirm my understanding?
>The application opens 3 databases and keeps them open for the duration
>of the program, closing them just before exiting. Meanwhile
>recordsets are opened, data is retrieved, and recordsets are closed by
>the dozen. It is these recordset operations that are taking their
>sweet time.
>Based on this scenario, am I correct to say that connection pooling
>will play a a negligible effect on the application's performance?
>(Because only 3 connections are done).
>Thanks for any help.
>-fds

Connection pooling and recordsets

Hi,
I am trying to speed up database operations of an application. The
app is separated from the SQL Server database by a WAN and they talk
through ODBC.
Operations are as slow as cold molasses.
Today I am looking at the option of enabling connection pooling. But
from what I read, I am pessimistic about whether it helps in my case.
Could some of you guys confirm my understanding?
The application opens 3 databases and keeps them open for the duration
of the program, closing them just before exiting. Meanwhile
recordsets are opened, data is retrieved, and recordsets are closed by
the dozen. It is these recordset operations that are taking their
sweet time.
Based on this scenario, am I correct to say that connection pooling
will play a a negligible effect on the application's performance?
(Because only 3 connections are done).
Thanks for any help.
-fdsI'd say you were correct. If you're keeping connections open for the
duration, then they'll never get closed and returned to the pool.
Connection pooling helps in distributed applications where connections
are continuously opened and closed, not where they're just held open
all the time. You also need to have identical connection strings and
security credentials to derive any benefit from connection pooling.
Remember that no matter what you do, you can only go as fast as the
wire permits. In your case, you may derive more benefit from
techniques that minimize the amount of data that travels over the WAN
on each call.
--Mary
On 5 Nov 2004 08:27:21 -0800, francisds@.hotmail.com (Francis DS)
wrote:

>Hi,
>I am trying to speed up database operations of an application. The
>app is separated from the SQL Server database by a WAN and they talk
>through ODBC.
>Operations are as slow as cold molasses.
>Today I am looking at the option of enabling connection pooling. But
>from what I read, I am pessimistic about whether it helps in my case.
>Could some of you guys confirm my understanding?
>The application opens 3 databases and keeps them open for the duration
>of the program, closing them just before exiting. Meanwhile
>recordsets are opened, data is retrieved, and recordsets are closed by
>the dozen. It is these recordset operations that are taking their
>sweet time.
>Based on this scenario, am I correct to say that connection pooling
>will play a a negligible effect on the application's performance?
>(Because only 3 connections are done).
>Thanks for any help.
>-fds

Connection pooling & Windows authentication

Hey all,
I'm connecting to SqlServer 2000 from an ASP.NET web application.
The web application runs under a specific Identity (impersonating to a
specific windows account), the connection string contains
"IntegratedSecurity=SSPI",
and as far as I can see, it (the connection string) is constant.
Will my web application be using the connection pooling mechanism? I'm
asking this because I've been reading that if the conenction string
is constant, the connection pool will be used, however, I haven't found
anything about windows authentication, where the username and password
aren't specified in the connection string, but are managed by windows,
therefore I can't really say if the connection srting is different or not.
Thanks, Gai.
Gai
Visit on this web site
http://www.able-consulting.com/ADO_C...erForSQLServer -- CONNECTIONS
"Gai" <gaitamir@.IBezint> wrote in message
news:%23we0Fah0EHA.1396@.tk2msftngp13.phx.gbl...
> Hey all,
> I'm connecting to SqlServer 2000 from an ASP.NET web application.
> The web application runs under a specific Identity (impersonating to a
> specific windows account), the connection string contains
> "IntegratedSecurity=SSPI",
> and as far as I can see, it (the connection string) is constant.
> Will my web application be using the connection pooling mechanism? I'm
> asking this because I've been reading that if the conenction string
> is constant, the connection pool will be used, however, I haven't found
> anything about windows authentication, where the username and password
> aren't specified in the connection string, but are managed by windows,
> therefore I can't really say if the connection srting is different or not.
> Thanks, Gai.
>

Connection pooling & Windows authentication

Hey all,
I'm connecting to SqlServer 2000 from an ASP.NET web application.
The web application runs under a specific Identity (impersonating to a
specific windows account), the connection string contains
"IntegratedSecurity=SSPI",
and as far as I can see, it (the connection string) is constant.
Will my web application be using the connection pooling mechanism? I'm
asking this because I've been reading that if the conenction string
is constant, the connection pool will be used, however, I haven't found
anything about windows authentication, where the username and password
aren't specified in the connection string, but are managed by windows,
therefore I can't really say if the connection srting is different or not.
Thanks, Gai.
As far as I know, if you create a connection to the sql server and then
impersonate a new user and make a new connection, a new connection pool gets
created even if the connection string is the same.
Hopes this helps
Marc
"Gai" <gaitamir@.IBezint> wrote in message
news:#otPhYh0EHA.2568@.TK2MSFTNGP10.phx.gbl...
> Hey all,
> I'm connecting to SqlServer 2000 from an ASP.NET web application.
> The web application runs under a specific Identity (impersonating to a
> specific windows account), the connection string contains
> "IntegratedSecurity=SSPI",
> and as far as I can see, it (the connection string) is constant.
> Will my web application be using the connection pooling mechanism? I'm
> asking this because I've been reading that if the conenction string
> is constant, the connection pool will be used, however, I haven't found
> anything about windows authentication, where the username and password
> aren't specified in the connection string, but are managed by windows,
> therefore I can't really say if the connection srting is different or not.
> Thanks, Gai.
>
|||Yes, but again, I'm impersonating a single user (not the running user, but
DomainA\UsernameA).
Hope it's more clear now.
Thanks any way, Gai.
"Marc Mertens" <marc.mertens@.azlan.com> wrote in message
news:eGpFc6s0EHA.1260@.TK2MSFTNGP12.phx.gbl...
> As far as I know, if you create a connection to the sql server and then
> impersonate a new user and make a new connection, a new connection pool
gets[vbcol=seagreen]
> created even if the connection string is the same.
> Hopes this helps
> Marc
> "Gai" <gaitamir@.IBezint> wrote in message
> news:#otPhYh0EHA.2568@.TK2MSFTNGP10.phx.gbl...
not.
>

Connection pooling & Windows authentication

Hey all,
I'm connecting to SqlServer 2000 from an ASP.NET web application.
The web application runs under a specific Identity (impersonating to a
specific windows account), the connection string contains
"IntegratedSecurity=SSPI",
and as far as I can see, it (the connection string) is constant.
Will my web application be using the connection pooling mechanism? I'm
asking this because I've been reading that if the conenction string
is constant, the connection pool will be used, however, I haven't found
anything about windows authentication, where the username and password
aren't specified in the connection string, but are managed by windows,
therefore I can't really say if the connection srting is different or not.
Thanks, Gai.Gai
Visit on this web site
http://www.able-consulting.com/ADO_...derForSQLServer --
CONNECTIONS
"Gai" <gaitamir@.IBezint> wrote in message
news:%23we0Fah0EHA.1396@.tk2msftngp13.phx.gbl...
> Hey all,
> I'm connecting to SqlServer 2000 from an ASP.NET web application.
> The web application runs under a specific Identity (impersonating to a
> specific windows account), the connection string contains
> "IntegratedSecurity=SSPI",
> and as far as I can see, it (the connection string) is constant.
> Will my web application be using the connection pooling mechanism? I'm
> asking this because I've been reading that if the conenction string
> is constant, the connection pool will be used, however, I haven't found
> anything about windows authentication, where the username and password
> aren't specified in the connection string, but are managed by windows,
> therefore I can't really say if the connection srting is different or not.
> Thanks, Gai.
>

Connection pooling & Windows authentication

Hey all,
I'm connecting to SqlServer 2000 from an ASP.NET web application.
The web application runs under a specific Identity (impersonating to a
specific windows account), the connection string contains
"IntegratedSecurity=SSPI",
and as far as I can see, it (the connection string) is constant.
Will my web application be using the connection pooling mechanism? I'm
asking this because I've been reading that if the conenction string
is constant, the connection pool will be used, however, I haven't found
anything about windows authentication, where the username and password
aren't specified in the connection string, but are managed by windows,
therefore I can't really say if the connection srting is different or not.
Thanks, Gai.Gai
Visit on this web site
http://www.able-consulting.com/ADO_Conn.htm#OLEDBProviderForSQLServer -- CONNECTIONS
"Gai" <gaitamir@.IBezint> wrote in message
news:%23we0Fah0EHA.1396@.tk2msftngp13.phx.gbl...
> Hey all,
> I'm connecting to SqlServer 2000 from an ASP.NET web application.
> The web application runs under a specific Identity (impersonating to a
> specific windows account), the connection string contains
> "IntegratedSecurity=SSPI",
> and as far as I can see, it (the connection string) is constant.
> Will my web application be using the connection pooling mechanism? I'm
> asking this because I've been reading that if the conenction string
> is constant, the connection pool will be used, however, I haven't found
> anything about windows authentication, where the username and password
> aren't specified in the connection string, but are managed by windows,
> therefore I can't really say if the connection srting is different or not.
> Thanks, Gai.
>

Connection pooling & Windows authentication

Hey all,
I'm connecting to SqlServer 2000 from an ASP.NET web application.
The web application runs under a specific Identity (impersonating to a
specific windows account), the connection string contains
"IntegratedSecurity=SSPI",
and as far as I can see, it (the connection string) is constant.
Will my web application be using the connection pooling mechanism? I'm
asking this because I've been reading that if the conenction string
is constant, the connection pool will be used, however, I haven't found
anything about windows authentication, where the username and password
aren't specified in the connection string, but are managed by windows,
therefore I can't really say if the connection srting is different or not.
Thanks, Gai.As far as I know, if you create a connection to the sql server and then
impersonate a new user and make a new connection, a new connection pool gets
created even if the connection string is the same.
Hopes this helps
Marc
"Gai" <gaitamir@.IBezint> wrote in message
news:#otPhYh0EHA.2568@.TK2MSFTNGP10.phx.gbl...
> Hey all,
> I'm connecting to SqlServer 2000 from an ASP.NET web application.
> The web application runs under a specific Identity (impersonating to a
> specific windows account), the connection string contains
> "IntegratedSecurity=SSPI",
> and as far as I can see, it (the connection string) is constant.
> Will my web application be using the connection pooling mechanism? I'm
> asking this because I've been reading that if the conenction string
> is constant, the connection pool will be used, however, I haven't found
> anything about windows authentication, where the username and password
> aren't specified in the connection string, but are managed by windows,
> therefore I can't really say if the connection srting is different or not.
> Thanks, Gai.
>|||Yes, but again, I'm impersonating a single user (not the running user, but
DomainA\UsernameA).
Hope it's more clear now.
Thanks any way, Gai.
"Marc Mertens" <marc.mertens@.azlan.com> wrote in message
news:eGpFc6s0EHA.1260@.TK2MSFTNGP12.phx.gbl...
> As far as I know, if you create a connection to the sql server and then
> impersonate a new user and make a new connection, a new connection pool
gets
> created even if the connection string is the same.
> Hopes this helps
> Marc
> "Gai" <gaitamir@.IBezint> wrote in message
> news:#otPhYh0EHA.2568@.TK2MSFTNGP10.phx.gbl...
not.[vbcol=seagreen]
>sqlsql

Connection Pooling & Users

I have an intranet application that comprises an ASP.Net application
connecting to a SQL Server DB
The application has 150 users. At the moment I am connecting using the
following setup
I have created a MyApp_WebUser user in SQL Server. My connection string,
which is stored in my web.config file, is
<add key="DB:CSA" value="data source=MyServer;initial
catalog=CSA;uid=MyApp_WebUser;pwd=123456
78" />
and by business objects use this string to make all its connections to the
database. This way, all my connections strings are identical and I can make
use of connection pooling.
However, this is causing some problems in the business domain. My DB
contains a User table in which I have a record of all users, their
application login and their application password. When users log in via a
login page, their username and password are checked against the User table
and they get access to various pages according to their role (I also have a
Role table). There are a number of issues that I need to address here and
would appreciate advice
1) It is a business requirement that all passwords need to change every 30
days and they need to conform to a particular pattern. I figure I could
either, write my own code to enforce this in the application or allow users
to log in using their active directory passwords.
If I use their windows login I would have the advantage of letting Windows
deal with the changing of passwords etc, but would I be right in thinking
that connection string should be changed to
<add key="DB:CSA" value="data source=MyServer;initial
catalog=CSA;integrated security = SSPI" />.
If this is the case, then my connection string will be different for each
user and I will not be able to take advantage of connection pooling
2) If I stick with my User table and write my own code for enforcing the
password requirements, how could I store their passwords in the db in an
encrypted format?
Advice appreciated
Terry HollandAlso
If I do store my connection string with UserID & Password in web.config
file, how secure is thisd?
Terry|||Hi Terry,
Reposnses below:

> If I use their windows login I would have the advantage of letting Windows
> deal with the changing of passwords etc, but would I be right in thinking
> that connection string should be changed to
NO - you are simply changing your authentication mechanism (you might
want to retain the functionality for roles and basically retain your
user and role tables too). Instead of checking the user name password
against the database, you can use Directory Services to test it against
an active directory (do not use integrated authentication, for minimum
impact to your current application). You will need to change ONLY one
function (the one which checks for the username password in the
database).
The Connection string is totally independent of the users of your
application. It can stay exactly as it is now.

> 2) If I stick with my User table and write my own code for enforcing the
> password requirements, how could I store their passwords in the db in an
> encrypted format?
The approach mentioned above will let you use the active directoy
policy, so you won't have to write your own code, but for future
purposes, you should always Hash (instead of encrypting) your
passwords. There is a function available in the FormsAuthentication
class (i think) which allows you to do that.
Third - the database connection string in your web.config file:
- If you want to keep it there, keep it in some encrypted form (instead
of plain text) and decrypt it before using. So you could decrypt it and
cache it for your application to use, every so often.
Regards,
Vaibhav|||What you use for authentication to your application, and what you use to
connect to the database are not related. You can use integrated for
authentication to your application - that has no bearing on your connection
string to the database. So you can use integrated, or not.
Btw, just using integrated in your connection string, means that the
connection will be made as the ASPNET user (or whatever ASP.NET is running
under on that machine). It does not mean the credentials of the current user
of your application will be used. You can have it pass the credentials of
the user with a Web.config setting to tell it to impersonate the current
user.
If you want to roll your own security, .NET provides many encryption
implementation for you to chose from. Check out the
System.Security.Cryptography namespace.
"Terry Holland" <TerryHolland@.Community.nospam> wrote in message
news:OZrjiq2cGHA.5016@.TK2MSFTNGP04.phx.gbl...
>I have an intranet application that comprises an ASP.Net application
> connecting to a SQL Server DB
> The application has 150 users. At the moment I am connecting using the
> following setup
> I have created a MyApp_WebUser user in SQL Server. My connection string,
> which is stored in my web.config file, is
> <add key="DB:CSA" value="data source=MyServer;initial
> catalog=CSA;uid=MyApp_WebUser;pwd=123456
78" />
> and by business objects use this string to make all its connections to the
> database. This way, all my connections strings are identical and I can
> make
> use of connection pooling.
> However, this is causing some problems in the business domain. My DB
> contains a User table in which I have a record of all users, their
> application login and their application password. When users log in via a
> login page, their username and password are checked against the User table
> and they get access to various pages according to their role (I also have
> a
> Role table). There are a number of issues that I need to address here and
> would appreciate advice
> 1) It is a business requirement that all passwords need to change every 30
> days and they need to conform to a particular pattern. I figure I could
> either, write my own code to enforce this in the application or allow
> users
> to log in using their active directory passwords.
> If I use their windows login I would have the advantage of letting Windows
> deal with the changing of passwords etc, but would I be right in thinking
> that connection string should be changed to
> <add key="DB:CSA" value="data source=MyServer;initial
> catalog=CSA;integrated security = SSPI" />.
> If this is the case, then my connection string will be different for each
> user and I will not be able to take advantage of connection pooling
> 2) If I stick with my User table and write my own code for enforcing the
> password requirements, how could I store their passwords in the db in an
> encrypted format?
>
> Advice appreciated
> Terry Holland
>|||Terry,
Not quite...
If you use the active directory to login your users your application may
still utilize integrated security for the sql connection and it won't run as
each individual user unless you put <identity impersonate="true" /> into the
web.config file. Instead the integrated security connection to sql server
will use the ASPNET account that the website is running then .net code with.
At this point which user account your web application will use to connect to
sql server and how you should treat such will differ based on which version
of IIS you are using and based on which version of asp.net you are using.
Could you let us know which versions you're working with?
Regards,
S. Justin Gengo
Web Developer / Programmer
Free code library:
http://www.aboutfortunate.com
"Out of chaos comes order."
Nietzsche
"Terry Holland" <TerryHolland@.Community.nospam> wrote in message
news:OZrjiq2cGHA.5016@.TK2MSFTNGP04.phx.gbl...
>I have an intranet application that comprises an ASP.Net application
> connecting to a SQL Server DB
> The application has 150 users. At the moment I am connecting using the
> following setup
> I have created a MyApp_WebUser user in SQL Server. My connection string,
> which is stored in my web.config file, is
> <add key="DB:CSA" value="data source=MyServer;initial
> catalog=CSA;uid=MyApp_WebUser;pwd=123456
78" />
> and by business objects use this string to make all its connections to the
> database. This way, all my connections strings are identical and I can
> make
> use of connection pooling.
> However, this is causing some problems in the business domain. My DB
> contains a User table in which I have a record of all users, their
> application login and their application password. When users log in via a
> login page, their username and password are checked against the User table
> and they get access to various pages according to their role (I also have
> a
> Role table). There are a number of issues that I need to address here and
> would appreciate advice
> 1) It is a business requirement that all passwords need to change every 30
> days and they need to conform to a particular pattern. I figure I could
> either, write my own code to enforce this in the application or allow
> users
> to log in using their active directory passwords.
> If I use their windows login I would have the advantage of letting Windows
> deal with the changing of passwords etc, but would I be right in thinking
> that connection string should be changed to
> <add key="DB:CSA" value="data source=MyServer;initial
> catalog=CSA;integrated security = SSPI" />.
> If this is the case, then my connection string will be different for each
> user and I will not be able to take advantage of connection pooling
> 2) If I stick with my User table and write my own code for enforcing the
> password requirements, how could I store their passwords in the db in an
> encrypted format?
>
> Advice appreciated
> Terry Holland
>|||Thank you.
I have successfully re-written the function to authenticate users using
Directory Services
"V" <vaibhav.gadodia@.gmail.com> wrote in message
news:1147182064.446995.240040@.j73g2000cwa.googlegroups.com...
> Hi Terry,
> Reposnses below:
>
Windows[vbcol=seagreen]
thinking[vbcol=seagreen]
> NO - you are simply changing your authentication mechanism (you might
> want to retain the functionality for roles and basically retain your
> user and role tables too). Instead of checking the user name password
> against the database, you can use Directory Services to test it against
> an active directory (do not use integrated authentication, for minimum
> impact to your current application). You will need to change ONLY one
> function (the one which checks for the username password in the
> database).
> The Connection string is totally independent of the users of your
> application. It can stay exactly as it is now.
>
> The approach mentioned above will let you use the active directoy
> policy, so you won't have to write your own code, but for future
> purposes, you should always Hash (instead of encrypting) your
> passwords. There is a function available in the FormsAuthentication
> class (i think) which allows you to do that.
> Third - the database connection string in your web.config file:
> - If you want to keep it there, keep it in some encrypted form (instead
> of plain text) and decrypt it before using. So you could decrypt it and
> cache it for your application to use, every so often.
> Regards,
> Vaibhav
>|||Thanks for Vaibhav's informative inputs.
Hi Terry,
I don't think you should change the authenitcation to windows since that'll
different much from your original application design. I think you should
manually do the password change policy in your application. For the
password stored in your custom db, generally, it is recommended to store
password hash rather than clear text to make it securer...
as for data connection string in web.config, ASP.NET has provided
encryption support when deploying the application, here are the msdn
articles discussing on this:
#How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI
http://msdn.microsoft.com/library/e...05.asp?frame=tr
ue
Regards,
Steven Cheng
Microsoft Online Community Support
========================================
==========
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
========================================
==========
This posting is provided "AS IS" with no warranties, and confers no rights.
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

Connection pooling & transaction context

I have been using connection pooling in a midle tier application with a very
good result. But I've always wondered what it means - when several articles
mention that the provider will divide the pool into subpools so to speak
based on transaction context among other things.
What exactly does this mean - transaction context? After all, under normal
circumstances there should be no active transaction when you close the
connection - leaving only one kind of transaction context in the pool.
Thanks in advance for any comments.
I see you haven't gotten a response on this. If you have a component based
application - like a COM+ application where multiple components in the same
transaction may open database connections, each component will open a
connection and enlist the connection in the transaction. If a connection is
already enlisted in the transaction from an earlier component running in the
same transaction it can be used without going through the enlistment
process. This saves the enlistment time and also makes commit faster
because there are fewer resource managers enlisted in the transaction.
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"samse" <samse@.discussions.microsoft.com> wrote in message
news:E468BEFF-D5CC-4779-AEE0-3E0CE60F76EB@.microsoft.com...
>I have been using connection pooling in a midle tier application with a
>very
> good result. But I've always wondered what it means - when several
> articles
> mention that the provider will divide the pool into subpools so to speak
> based on transaction context among other things.
> What exactly does this mean - transaction context? After all, under normal
> circumstances there should be no active transaction when you close the
> connection - leaving only one kind of transaction context in the pool.
> Thanks in advance for any comments.

Connection Pooling

I am currently building an OLAP application in AS2005 which is going to
integrate with an existing web application that uses Connection Pooling.
This will mean that there is only a few distinct accounts which access the
AS database (although there will be thousands of users), and I would like to
utilise the new CustomData connection string parameter to feed account ID's
through to AS2005 as a source for security.
Has anyone out there used AS2005 with connection pooling in this way?, and
secondly has anyone used the new CustomData parameter, and can this be
altered in the connection string without forcing a new connection to be
generated; which would obviously negate the reason for Connection Pooling...
Thanks.From my experience, if you alter the connection string, it creates a NEW
connection, and also creates a new Connection Pool for that new connection.
If your users are domain authenticated users, then even if they are using a
common connection account, their domain identity can still be known by SQL
Server.
You may want to read up on SESSION_USER() in books on Line.
--
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
"SimonE" <SimonE@.discussions.microsoft.com> wrote in message
news:9B9C0356-8E73-4930-A5CA-AFC3E5E25224@.microsoft.com...
>I am currently building an OLAP application in AS2005 which is going to
> integrate with an existing web application that uses Connection Pooling.
> This will mean that there is only a few distinct accounts which access the
> AS database (although there will be thousands of users), and I would like
> to
> utilise the new CustomData connection string parameter to feed account
> ID's
> through to AS2005 as a source for security.
> Has anyone out there used AS2005 with connection pooling in this way?, and
> secondly has anyone used the new CustomData parameter, and can this be
> altered in the connection string without forcing a new connection to be
> generated; which would obviously negate the reason for Connection
> Pooling...
> Thanks.
>|||Thanks for this Arnie.
The issue I have is that I want to feed in a user ID from the web
application session, which will not be the ID used to access AS2005, but is
needed to base the security. The users domain login is unfortuantely no use
here as the IDs are completely seperate.
Is it feasible to think that I could set a system parameter (which wouldn't
effect other sessions) for the current session, and then access this
parameter from within AS2005, or perhaps by executing a stored procedure from
within AS?
"Arnie Rowland" wrote:
> From my experience, if you alter the connection string, it creates a NEW
> connection, and also creates a new Connection Pool for that new connection.
> If your users are domain authenticated users, then even if they are using a
> common connection account, their domain identity can still be known by SQL
> Server.
> You may want to read up on SESSION_USER() in books on Line.
> --
> Arnie Rowland, Ph.D.
> Westwood Consulting, Inc
> Most good judgment comes from experience.
> Most experience comes from bad judgment.
> - Anonymous
>
> "SimonE" <SimonE@.discussions.microsoft.com> wrote in message
> news:9B9C0356-8E73-4930-A5CA-AFC3E5E25224@.microsoft.com...
> >I am currently building an OLAP application in AS2005 which is going to
> > integrate with an existing web application that uses Connection Pooling.
> >
> > This will mean that there is only a few distinct accounts which access the
> > AS database (although there will be thousands of users), and I would like
> > to
> > utilise the new CustomData connection string parameter to feed account
> > ID's
> > through to AS2005 as a source for security.
> >
> > Has anyone out there used AS2005 with connection pooling in this way?, and
> > secondly has anyone used the new CustomData parameter, and can this be
> > altered in the connection string without forcing a new connection to be
> > generated; which would obviously negate the reason for Connection
> > Pooling...
> >
> > Thanks.
> >
>
>|||You could just add the UsedID as an INPUT parameter to the stored procedures
that are called to provide the users the information they seek. Of course,
if your users are running dynamic queries from QA or a similar tool, that
wouldn't work. If you have a base of stored procedures in place and don't
want to add the UserID input param, you could create a wrapper stored
procedure with the UserID input param that then verifies (or logs, etc.)
user information and then executes the current stored procedures.
As far as I know, there is no 'simple' way to pass in the UserID identity as
an element of the connection string. Using a common connection string will,
as you know, have the effect that every request from the web server will be
seen as coming from the same users.
--
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
"SimonE" <SimonE@.discussions.microsoft.com> wrote in message
news:E591F675-72DC-4DC8-98CB-596C3EEC8E49@.microsoft.com...
> Thanks for this Arnie.
> The issue I have is that I want to feed in a user ID from the web
> application session, which will not be the ID used to access AS2005, but
> is
> needed to base the security. The users domain login is unfortuantely no
> use
> here as the IDs are completely seperate.
> Is it feasible to think that I could set a system parameter (which
> wouldn't
> effect other sessions) for the current session, and then access this
> parameter from within AS2005, or perhaps by executing a stored procedure
> from
> within AS?
>
> "Arnie Rowland" wrote:
>> From my experience, if you alter the connection string, it creates a NEW
>> connection, and also creates a new Connection Pool for that new
>> connection.
>> If your users are domain authenticated users, then even if they are using
>> a
>> common connection account, their domain identity can still be known by
>> SQL
>> Server.
>> You may want to read up on SESSION_USER() in books on Line.
>> --
>> Arnie Rowland, Ph.D.
>> Westwood Consulting, Inc
>> Most good judgment comes from experience.
>> Most experience comes from bad judgment.
>> - Anonymous
>>
>> "SimonE" <SimonE@.discussions.microsoft.com> wrote in message
>> news:9B9C0356-8E73-4930-A5CA-AFC3E5E25224@.microsoft.com...
>> >I am currently building an OLAP application in AS2005 which is going to
>> > integrate with an existing web application that uses Connection
>> > Pooling.
>> >
>> > This will mean that there is only a few distinct accounts which access
>> > the
>> > AS database (although there will be thousands of users), and I would
>> > like
>> > to
>> > utilise the new CustomData connection string parameter to feed account
>> > ID's
>> > through to AS2005 as a source for security.
>> >
>> > Has anyone out there used AS2005 with connection pooling in this way?,
>> > and
>> > secondly has anyone used the new CustomData parameter, and can this be
>> > altered in the connection string without forcing a new connection to be
>> > generated; which would obviously negate the reason for Connection
>> > Pooling...
>> >
>> > Thanks.
>> >
>>

Connection Pooling

I am currently building an OLAP application in AS2005 which is going to
integrate with an existing web application that uses Connection Pooling.
This will mean that there is only a few distinct accounts which access the
AS database (although there will be thousands of users), and I would like to
utilise the new CustomData connection string parameter to feed account ID's
through to AS2005 as a source for security.
Has anyone out there used AS2005 with connection pooling in this way?, and
secondly has anyone used the new CustomData parameter, and can this be
altered in the connection string without forcing a new connection to be
generated; which would obviously negate the reason for Connection Pooling...
Thanks.From my experience, if you alter the connection string, it creates a NEW
connection, and also creates a new Connection Pool for that new connection.
If your users are domain authenticated users, then even if they are using a
common connection account, their domain identity can still be known by SQL
Server.
You may want to read up on SESSION_USER() in books on Line.
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
"SimonE" <SimonE@.discussions.microsoft.com> wrote in message
news:9B9C0356-8E73-4930-A5CA-AFC3E5E25224@.microsoft.com...
>I am currently building an OLAP application in AS2005 which is going to
> integrate with an existing web application that uses Connection Pooling.
> This will mean that there is only a few distinct accounts which access the
> AS database (although there will be thousands of users), and I would like
> to
> utilise the new CustomData connection string parameter to feed account
> ID's
> through to AS2005 as a source for security.
> Has anyone out there used AS2005 with connection pooling in this way?, and
> secondly has anyone used the new CustomData parameter, and can this be
> altered in the connection string without forcing a new connection to be
> generated; which would obviously negate the reason for Connection
> Pooling...
> Thanks.
>|||Thanks for this Arnie.
The issue I have is that I want to feed in a user ID from the web
application session, which will not be the ID used to access AS2005, but is
needed to base the security. The users domain login is unfortuantely no use
here as the IDs are completely seperate.
Is it feasible to think that I could set a system parameter (which wouldn't
effect other sessions) for the current session, and then access this
parameter from within AS2005, or perhaps by executing a stored procedure fro
m
within AS?
"Arnie Rowland" wrote:

> From my experience, if you alter the connection string, it creates a NEW
> connection, and also creates a new Connection Pool for that new connection
.
> If your users are domain authenticated users, then even if they are using
a
> common connection account, their domain identity can still be known by SQL
> Server.
> You may want to read up on SESSION_USER() in books on Line.
> --
> Arnie Rowland, Ph.D.
> Westwood Consulting, Inc
> Most good judgment comes from experience.
> Most experience comes from bad judgment.
> - Anonymous
>
> "SimonE" <SimonE@.discussions.microsoft.com> wrote in message
> news:9B9C0356-8E73-4930-A5CA-AFC3E5E25224@.microsoft.com...
>
>|||You could just add the UsedID as an INPUT parameter to the stored procedures
that are called to provide the users the information they seek. Of course,
if your users are running dynamic queries from QA or a similar tool, that
wouldn't work. If you have a base of stored procedures in place and don't
want to add the UserID input param, you could create a wrapper stored
procedure with the UserID input param that then verifies (or logs, etc.)
user information and then executes the current stored procedures.
As far as I know, there is no 'simple' way to pass in the UserID identity as
an element of the connection string. Using a common connection string will,
as you know, have the effect that every request from the web server will be
seen as coming from the same users.
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
"SimonE" <SimonE@.discussions.microsoft.com> wrote in message
news:E591F675-72DC-4DC8-98CB-596C3EEC8E49@.microsoft.com...[vbcol=seagreen]
> Thanks for this Arnie.
> The issue I have is that I want to feed in a user ID from the web
> application session, which will not be the ID used to access AS2005, but
> is
> needed to base the security. The users domain login is unfortuantely no
> use
> here as the IDs are completely seperate.
> Is it feasible to think that I could set a system parameter (which
> wouldn't
> effect other sessions) for the current session, and then access this
> parameter from within AS2005, or perhaps by executing a stored procedure
> from
> within AS?
>
> "Arnie Rowland" wrote:
>sqlsql

Connection pool needed?

From what I understand, some database drivers provide automatic database pooling, in the sense that when an application closes a connection, it is not dropped until after a certain timeout. If the same, or another application, request a connection then the "pooled" one is returned.

What's the situation with C#, .NET Compact Edition and SQLce? Is it a performance hit to open and close a connection, or is some kind of automatic pooling in effect?

Thanks.

Martin

SQL CE is a single user database, so I find that having a single connection during the lifetime of your application is best. There is some overhead in opening and closing connections.

Connection pool leak in production machine (in other machine it runs well)

Hi to everyone,

I'm facing a problem that drives me crazy. I've a web application that has the following problem. When I test the application on my developement machine all runs fine, but when I put into production server there is a problem in connection pooling. Look at the following image, the blue line is the number of connection in the pool and the violet line is the number of connection reclaimed. From the image it is clear that connection are returned on the pool only in block, maybe when the garbage collection pass and reclaim the object. The strange thing is that on my developement machine all is good, and also I'm using Enterprise Library and the connection are managed internally.-

Thanks to everyone for any help.


How do you access DB? If you use some IDataReader, though they will be GC sooner or later, still remember to close them as soon as they are not used~|||

My big mistake is to misunderstood the meaning of the numberOfReclaimedConnection counter, that indicates the number of connections that are reclaimed by a garbage collector and indicate a leak. For some reason in my developement machine garbage collector does a more aggressive job in reclaiming connection while in the production server, maybe due to the large amount of ram garbage collection happens less frequently.

You're right about the datareder, one of the function in Data Access Layer forget to close a datareader in some situation, and it's called from a webModule that runs at every request for the page. The result is awful, when a lot of user access to the site the pool often become empty. I enclose the datareader in using block and all goes well again. From now on I will use perfmon.exe at every run of the site.

Alk.

Connection Pool in SQLserver 2005

What is the performance cost of not using connection pool when connecting to
a sqlserver 2005 using windows identity.
We are planning an application where the users windows identity is forwarded
through all layers all the way into the sqlserver.
This gives security and auditing advantages.
But a pros/cons evaluation is always proper to do.
The cons include: the sqlserver connection pool cannot be used...(?) If
there is more problems, pls let me know.
This rises the question: what is the price for not using connection pools.
Who is paying: the sqlserver or the business layer on the IIS server or both?
regards
Jens Chr
If the users are constantly in/out of the server, you can still benefit from
using connection pooling. It's just that each user will have their own
connection pool. (Set the max connections in the pool to 2, and set the pool
timeout up to 10-20 minutes -or longer.)
Of course, this will require a bit more memory on the IIS box, and a bit
more on the SQL Server, but will greatly improve responsiveness.
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
You can't help someone get up a hill without getting a little closer to the
top yourself.
- H. Norman Schwarzkopf
"jcjj" <jcjj@.discussions.microsoft.com> wrote in message
news:CD85E9F3-21BE-42B6-AC23-EDBF0234C713@.microsoft.com...
> What is the performance cost of not using connection pool when connecting
> to
> a sqlserver 2005 using windows identity.
> We are planning an application where the users windows identity is
> forwarded
> through all layers all the way into the sqlserver.
> This gives security and auditing advantages.
> But a pros/cons evaluation is always proper to do.
> The cons include: the sqlserver connection pool cannot be used...(?) If
> there is more problems, pls let me know.
> This rises the question: what is the price for not using connection pools.
> Who is paying: the sqlserver or the business layer on the IIS server or
> both?
> regards
> Jens Chr

Connection Pool in SQLserver 2005

What is the performance cost of not using connection pool when connecting to
a sqlserver 2005 using windows identity.
We are planning an application where the users windows identity is forwarded
through all layers all the way into the sqlserver.
This gives security and auditing advantages.
But a pros/cons evaluation is always proper to do.
The cons include: the sqlserver connection pool cannot be used...(?) If
there is more problems, pls let me know.
This rises the question: what is the price for not using connection pools.
Who is paying: the sqlserver or the business layer on the IIS server or both
?
regards
Jens ChrIf the users are constantly in/out of the server, you can still benefit from
using connection pooling. It's just that each user will have their own
connection pool. (Set the max connections in the pool to 2, and set the pool
timeout up to 10-20 minutes -or longer.)
Of course, this will require a bit more memory on the IIS box, and a bit
more on the SQL Server, but will greatly improve responsiveness.
Arnie Rowland, Ph.D.
Westwood Consulting, Inc
Most good judgment comes from experience.
Most experience comes from bad judgment.
- Anonymous
You can't help someone get up a hill without getting a little closer to the
top yourself.
- H. Norman Schwarzkopf
"jcjj" <jcjj@.discussions.microsoft.com> wrote in message
news:CD85E9F3-21BE-42B6-AC23-EDBF0234C713@.microsoft.com...
> What is the performance cost of not using connection pool when connecting
> to
> a sqlserver 2005 using windows identity.
> We are planning an application where the users windows identity is
> forwarded
> through all layers all the way into the sqlserver.
> This gives security and auditing advantages.
> But a pros/cons evaluation is always proper to do.
> The cons include: the sqlserver connection pool cannot be used...(?) If
> there is more problems, pls let me know.
> This rises the question: what is the price for not using connection pools.
> Who is paying: the sqlserver or the business layer on the IIS server or
> both?
> regards
> Jens Chrsqlsql

Connection Pool and MSSql driver

Hi all,
I'm trying to build an application using MSSQL Server and Connection pool.
At my server.xml file I have:
<Context path="/sample" docBase="C:/myprojects/sample" reloadable="true" >
<Resource name="jdbc/StrutsDemoDS" auth="Container"
type="javax.sql.DataSource" scope="Shareable"/>
<ResourceParams name="jdbc/StrutsDemoDS">
<parameter>
<name>factory</name><value>org.apache.commons.dbcp.BasicDataSourc eFactory</value></parameter>
<parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServer Driver</value></parameter>
<parameter><name>url</name><value>jdbc:microsoft:sqlserver://myserver:1433</value></parameter>
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>passwd</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>10</value></parameter>
<parameter><name>maxWait</name><value>100</value></parameter>
</ResourceParams>
</Context>
In my class, I have:
protected static DataSource dataSource;
protected Connection getConnection() throws SQLException {
InitialContext ic = new InitialContext();
dataSource = (DataSource)
ic.lookup("java:comp/env/jdbc/StrutsDemoDS");
Connection conn = null;
try {
conn = dataSource.getConnection(); // The error happens at this
line
}
catch (SQLException e) {
throw e;
}
return conn;
}
I can't get successful my connection. Can anyone tell me why?
Thanks.
Lorena
Lorena,
What is the error you're getting? Are you sure the lookup is successful?
If you write a simple class that doesn't use jndi but instead uses
DriverManager, Connection, and the normal db access stuff, with the
connectstring you're passing, can you connect?
Marc
"Lorena" <Lorena@.discussions.microsoft.com> wrote in message
news:E2508C07-F91E-40C2-BF64-34B7E8C23F58@.microsoft.com...
> Hi all,
> I'm trying to build an application using MSSQL Server and Connection pool.
> At my server.xml file I have:
> <Context path="/sample" docBase="C:/myprojects/sample" reloadable="true" >
> <Resource name="jdbc/StrutsDemoDS" auth="Container"
> type="javax.sql.DataSource" scope="Shareable"/>
> <ResourceParams name="jdbc/StrutsDemoDS">
> <parameter>
> <name>factory</name><value>org.apache.commons.dbcp.BasicDataSourc eFactory</value></parameter>
> <parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServer Driver</value></parameter>
> <parameter><name>url</name><value>jdbc:microsoft:sqlserver://myserver:1433</value></parameter>
> <parameter><name>username</name><value>sa</value></parameter>
> <parameter><name>password</name><value>passwd</value></parameter>
> <parameter><name>maxActive</name><value>20</value></parameter>
> <parameter><name>maxIdle</name><value>10</value></parameter>
> <parameter><name>maxWait</name><value>100</value></parameter>
> </ResourceParams>
> </Context>
> In my class, I have:
> protected static DataSource dataSource;
> protected Connection getConnection() throws SQLException {
> InitialContext ic = new InitialContext();
> dataSource = (DataSource)
> ic.lookup("java:comp/env/jdbc/StrutsDemoDS");
> Connection conn = null;
> try {
> conn = dataSource.getConnection(); // The error happens at
> this
> line
> }
> catch (SQLException e) {
> throw e;
> }
> return conn;
> }
> I can't get successful my connection. Can anyone tell me why?
> Thanks.
> Lorena