Pool of stateless instances ?
There is the following paragraph in OAS WebServices documentation:
"For a stateless Java implementation, Oracle Application Server Web Services
creates multiple instances of the Java class in a pool, any one of which may be
used to service a request. After servicing the request, the object is returned to
the pool for use by a subsequent request."
Writing Stateless and Stateful Java Web Services
Oracle® Application Server Web Services
Developers Guide
10g (9.0.4)
Part No. B10447-01
Could anybody help me with finding a way how this pool of instances can be managed ?
For now, it seems like only single instance of stateless servlet is created,
and it's not possible to serve concurrent requests in parallel.
Is it really so ?
Thanks.
Is the SAME instance from the pool used to process the HeaderCallback AND service the request?
I want to set a private variable in the processHeaders callback method and then use it in the service method.
Similar Messages
-
Hi,
I have installed scom 2012 with integrated SP1 on windows server 2008 R2 with integrated SP1 and SQL 2008 R2 SP2.
The Problem I have is when trying to discovery I´m getting this error:
The pool managing the instance is not available or the location monitoring object cannot be found
Date: 05.03.2013 14:44:22
Application: Operations Manager
Application Version: 7.0.9538.0
Severity: Error
Message:
Microsoft.EnterpriseManagement.Common.LocationObjectNotFoundException: The pool managing the instance is not available or the location monitoring object cannot be found.
at Microsoft.EnterpriseManagement.Common.Internal.ServiceProxy.HandleFault(String methodName, Message message)
at Microsoft.EnterpriseManagement.Common.Internal.AdministrationServiceProxy.LaunchDiscovery(Guid batchId, IList`1 jobDefinitions)
at Microsoft.EnterpriseManagement.Administration.ManagementServer.BeginExecuteWindowsDiscovery(IList`1 discoveryConfigurations, AsyncCallback callback, Object state)
at Microsoft.EnterpriseManagement.Mom.Internal.UI.Administration.DiscoveryProgress.<>c__DisplayClass7.<SubmitTask>b__3(Object , ConsoleJobEventArgs )
at Microsoft.EnterpriseManagement.Mom.Internal.UI.Console.ConsoleJobExceptionHandler.ExecuteJob(IComponent component, EventHandler`1 job, Object sender, ConsoleJobEventArgs args)
How can I solve this? Thank you.
gruss Daniel Ovadia MBSS - Microsoft Dynamics CRM MCNPSSee the article I wrote/posted here about monitoring Domain Controllers: http://adinermie.wordpress.com/2014/02/26/scom-agent-grayed-out-when-trying-to-monitor-domain-controllers/.
And to add an account to Local Administrators role on a Domain Controller, follow this:
Open a command promt using the "Run as administrator" function and then run the following command.
net localgroup Administrators /add {domain}\{user} -
The pool managing the instance is not available or the location monitoring object cannot be found
SCOM Environment
Windows 2012
SQL 2012
Everything patched and to latest build
I've installed SCOM using the MS SCOM guidelines. When I attempt to discovery, I get the error in the topic.
Here is the details of the error.
Note: The following information was gathered when the operation was attempted. The information may appear cryptic but provides context for the error. The application will continue to run.
Microsoft.EnterpriseManagement.Common.LocationObjectNotFoundException: The pool managing the instance is not available or the location monitoring object cannot be found.
at Microsoft.EnterpriseManagement.Common.Internal.ServiceProxy.HandleFault(String methodName, Message message)
at Microsoft.EnterpriseManagement.Common.Internal.AdministrationServiceProxy.LaunchDiscovery(Guid batchId, IList`1 jobDefinitions)
at Microsoft.EnterpriseManagement.Administration.ManagementServer.BeginExecuteWindowsDiscovery(IList`1 discoveryConfigurations, AsyncCallback callback, Object state)
at Microsoft.EnterpriseManagement.Mom.Internal.UI.Administration.DiscoveryProgress.<>c__DisplayClass7.<SubmitTask>b__3(Object , ConsoleJobEventArgs )
at
Thank you in advance for your helpInstalled it manually, but it's not showing up as pending.
I also set it to accept manual installs.
Logs
02/10/2014 10:52:20,spid60,Unknown,Failed to verify Authenticode signature on DLL 'E:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\msxmlsql.dll'.
02/10/2014 00:00:19,spid10s,Unknown,This instance of SQL Server has been using a process ID of 2952 since 2/7/2014 4:15:57 PM (local) 2/7/2014 9:15:57 PM (UTC). This is an informational message only; no user action is required.
02/09/2014 00:00:12,spid15s,Unknown,This instance of SQL Server has been using a process ID of 2952 since 2/7/2014 4:15:57 PM (local) 2/7/2014 9:15:57 PM (UTC). This is an informational message only; no user action is required.
02/08/2014 00:00:59,spid15s,Unknown,This instance of SQL Server has been using a process ID of 2952 since 2/7/2014 4:15:57 PM (local) 2/7/2014 9:15:57 PM (UTC). This is an informational message only; no user action is required.
Should I uninstall and install SQL 2008? -
OC4J: Pool of stateless Java WS instances ?
There is the following paragraph in OAS WebServices documentation:
"For a stateless Java implementation, Oracle Application Server Web Services
creates multiple instances of the Java class in a pool, any one of which may be
used to service a request. After servicing the request, the object is returned to
the pool for use by a subsequent request."
Writing Stateless and Stateful Java Web Services
Oracle® Application Server Web Services
Developers Guide
10g (9.0.4)
Part No. B10447-01
Could anybody quide me with finding a way how this pool of instances can be managed ?
For now, it seems like only single instance of stateless servlet is created,
and it's not possible to serve concurrent requests in parallel.
Is it really so ?
Thanks.Is the SAME instance from the pool used to process the HeaderCallback AND service the request?
I want to set a private variable in the processHeaders callback method and then use it in the service method. -
Restricting Thread Pool for Servlet instances
I am using WebLogic5.1.0 version wherein I am registering a Servlet which
would be called by all the clients connecting
to my aplication. The servlet's service methods is taking some time to
execute. Since the servlet is following a SingleThreadModel, when there are
a large number of Clients connected, the number instances of Servlets
created are very high and the number of thread in the Application Server
process becomes very high affecting the performance of the other
applications.
Is it possible to restrict the number of instances of the servlets that get
created in the Application server ?
What are the setting required to achieve this ?
SandeepHi.
I'm not aware of a property setting that allows you to restrict the number of
servlet instances in WLS for the SingleThreadModel. The number of execute
threads is fixed - it does not grow depending on load. You can set this value
in the weblogic.properties file by setting weblogic.system.executeThreadCount.
This value is 15 by default.
It does sound like you are reaching the max capability of your
server/hardware. You should try tuning WLS.
Here are a couple of suggestions:
1. Try adjusting the executeThreadCount value to a higher value. Start by
setting it to 30 - see if that makes any difference.
2. Check out the following tuning guide:
http://www.weblogic.com/docs51/admindocs/tuning.html
3. Here is a list of admin properties that might aid in tuning:
http://www.weblogic.com/docs51/adminhelp/AdminPropertyHelp.html
4. If you are still having problems you might do better by posting this issue
to the performance newsgroup.
Regards,
Michael
Sandeep Rajpathak wrote:
I am using WebLogic5.1.0 version wherein I am registering a Servlet which
would be called by all the clients connecting
to my aplication. The servlet's service methods is taking some time to
execute. Since the servlet is following a SingleThreadModel, when there are
a large number of Clients connected, the number instances of Servlets
created are very high and the number of thread in the Application Server
process becomes very high affecting the performance of the other
applications.
Is it possible to restrict the number of instances of the servlets that get
created in the Application server ?
What are the setting required to achieve this ?
Sandeep--
Michael Young
Developer Relations Engineer
BEA Support -
Jax-WS 2.2 web service instances management on Glassfish 3
Hi all, I'm studying Jax-WS specification in general and its implementation on Glassfish 3.1.2. I built a simple standard example where a jax-ws soap based web service is called from a jsp page by using the artifacts generated through wsimport (the webservice and the jsp page are both deployed on Glassfish in the same EAR but in 2 different wars).
Everything works as expected but I have a question: looking at the application log, it seems that Glassfish creates a new instance of the webservice each time it is called. I would like to know where Java offically defines how a web container should manage webservice instances and if developers can customize this behaviour.
I read jax-ws 2.1 specification here
http://download.oracle.com/otndocs/jcp/jaxws-2.1-mrel2-eval-oth-JSpec/
but I found only a clue when speaking about how to publish a webservice using the Endpoint class by hand (section 5.2.2 "Publishing", page 69):
"An endpoint consists of an object that acts as the Web service implementation (called here implementor) plus some configuration information...
An Endpoint will be typically invoked to serve concurrent requests, so its implementor should be written so as to support multiple threads. The synchronized keyword may be used as usual to control access to critical sections of code. For finer control over the threads used to dispatch incoming requests, an application can directly set the executor to be used..."
This note is present even in Jax-WS 2.2 specification (used by Glassfish 3).
Actually, if I build a webservice using only JavaSE 7 (which includes Jax-WS 2.2), this description is true because there is only one instance of the webservice. Is there any reason why JavaEE doesn't follow this policy?
Thanks a lot for your help,
NicoHi, I found the answers on this specification (JSR-109):
http://jcp.org/aboutJava/communityprocess/mrel/jsr109/index3.html
It describes how Jax-WS works on JavaEE:
"4.1 Client Programming model (page 18)
a client must assume that the methods of a Web service have no state that is persistent across multiple Web service method invocations. A client can treat the Web service implementation as stateless.
The client has no control over the life cycle of the Web service implementation on the server. A client does not create or destroy instances of a Web service, which is referred to as a Port. The client only accesses the Port. The life cycle of the Ports, or instances of a Web service implementation, are managed by the run-time that hosts the Web service. A Port has no identity. This means that a client cannot compare a Port to other Ports to see if they are the same or identical, nor can a client access a specific Port instance.
5.3.2.4.2 Web container programming model for JAX-WS (page 42)
A Service Implementation must be a stateless object. A Service Implementation Bean must not save client specific state across method calls either within the bean instance’s data members or external to the instance. A container may use any bean instance to service a request.
5.3.4 Service Implementation Bean Life Cycle (page 43)
Before a request can be serviced, the container must instantiate a Service Implementation Bean and ready it for method requests.
A container may pool method ready instances of a Service Implementation Bean and dispatch a method request on any instance in a method ready state."
Moreover, the specification states that JavaEE must not use the Endpoint class to publish a webservice:
"5.3.3 Publishing Endpoints – javax.xml.ws.Endpoint (page 43)
JAX-WS provides functionality for creating and publishing Web Service endpoints dynamically using javax.xml.ws.Endpoint API. The use of this functionality is considered non-portable in a managed environment. It is required that both the Servlet and the EJB container disallow the publishing of the Endpoint dynamically, by not granting the publishEndpoint security permission." -
Error in stateless-clustering in weblogic-ejb-jar.xml
Hi,
This is my <weblogic-ejb-jar.xml> and I see an error in <stateless-bean-is-clusterable>. Can anybody please help me regarding this.
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/10.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>Sample1</ejb-name>
<stateless-session-descriptor>
<pool>
<initial-beans-in-free-pool>10</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
</stateless-clustering>
</stateless-session-descriptor>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>Sample2</ejb-name>
<stateless-session-descriptor>
<pool>
<initial-beans-in-free-pool>10</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
</stateless-clustering>
</stateless-session-descriptor>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>Sample3</ejb-name>
<stateless-session-descriptor>
<pool>
<initial-beans-in-free-pool>10</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>TRUE</stateless-bean-is-clusterable>
</stateless-clustering>
</stateless-session-descriptor>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
I am using weblogic 10.3 and EJB 3.0 Can I include all the EJBs in a single <weblogic-ejb-jar.xml> file and can I put it in the EAR->EarContent->META-INF folder, where the application.xml and weblogic-application.xml files exist.
Basically, I am trying to include <initial-beans-in-free-pool> and <stateless-bean-is-clusterable> for each of my EJBs. Since there is no annotation equivalent for them in EJB 3.0, I had to include the <weblogic-ejb-jar.xml> file. I appreciate if anybody can suggest me if there is any annotation equivalent for these.
Thank you,
SowmyaHi,
1. please try with <stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
2. the EJB Specification requires "The deployment descriptor must be stored with the name META-INF/ejb-jar.xml in the ejb-jar file." So you shouldn't put the weblogic-ejb-jar.xml to EAR's META-INF folder.
3. <stateless-bean-is-clusterable> has a default value as "true". so you needn't specify it in your weblogic-ejb-jar.xml if you just want to have the "true" value.
4. default value of <initial-beans-in-free-pool> is 0. Since you're changing the default value, you'll have to specify it in weblogic-ejb-jar.xml. If you can put all EJBs in one ejb jar file, you can have only one weblogic-ejb-jar.xml in the META-INF folder of this ejb jar.
Thanks,
Amy -
Hi,
How is pooling of entity beans supported in Weblogic? If a value is provided for
max_beans_in_free_pool, then the Weblogic server creates a particular number of
entity bean instances in the pool? What's the role of max-beans-in-cache?
Regards,
IndhuThanks Seth for your info
Indhu
Seth White <[email protected]> wrote:
>
The docs are incorrect. You may configure a pool for your entity beans.
Seth
indhu wrote:
Hi Ryan,
Thanks for your reply.
In the entity-descriptor element of weblogic-ejb-jar.xml, pool elementis there,
which consists of max-beans-in-free-pool and initial-beans-in-free-pool.The document
says that the pool element configures the behavior of the WebLogicServer free
pool for stateless session and message driven EJBs.It means that wecan't use
those elements to set free pool for entity beans?
Regards,
Indhu
"Ryan LeCompte" <[email protected]> wrote:
Hello Indhu,
Refer to the following links for answers to your questions:
http://edocs.bea.com/wls/docs70/ejb/EJB_environment.html#1135029
http://edocs.bea.com/wls/docs70/ejb/reference.html#1071069
http://edocs.bea.com/wls/docs70/ejb/reference.html#1071125
Best regards,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669
"indhu" <[email protected]> wrote:
Hi,
How is pooling of entity beans supported in Weblogic? If a value
is
provided
for
max_beans_in_free_pool, then the Weblogic server creates a particular
number of
entity bean instances in the pool? What's the role of max-beans-in-cache?
Regards,
Indhu -
Oracle 11gR2 RAC (convert single instance to RAC)
Hi,
Using Metalink Doc [ID 747457.1] I have converted single instance database running on 11gR2 to RAC (2 node) database 11gR2 with ASM. Its running fine, I am able to see the instances running on both nodes. But I am unable to login to the instance. It is connecting to ideal instance., but the instance is already running
oracle@hublhp1:/home/oracle$ export ORACLE_SID=cadtest1
oracle@hublhp1:/home/oracle$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 2 11:23:43 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
oracle@hublhp1:/home/oracle$ srvctl status database -d cadtest
Instance cadtest1 is not running on node hublhp1
Instance cadtest2 is not running on node hublhp3
oracle@hublhp1:/home/oracle$ ps -ef | grep pmon
oracle 2407 1 0 15:28:21 ? 0:27 asm_pmon_+ASM1
oracle 4125 1 0 15:51:18 ? 0:36 ora_pmon_cadtest1
oracle 4973 3295 0 14:31:13 pts/1 0:00 grep pmon
oracle@hublhp1:/home/oracle$
I am able to stop/start the database using SRVCTL but I am not able to login to this instance. Can anyone please help me to find the issue or where & what to look at.
- ManoThank you so much, I did the following, but I still have the same issue, the instance is running on both nodes, but I am unable to stop/start the database using SRVCTL and I am unable to login using SQLPLUS.
oracle@hublhp1:/home/oracle$ *srvctl modify database -d cadtest -n cadtest -o $ORACLE_HOME -p +asmcdb01/cadtest/spfilecadtest.ora -a ASMCDB01,ASMCFR01*
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ srvctl config database -d cadtest -a
Database unique name: cadtest
Database name: cadtest
Oracle home: /app/oracle/rdbms/product/11.2.0
Oracle user: oracle
Spfile: +asmcdb01/cadtest/spfilecadtest.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: cadtest
Database instances: cadtest1,cadtest2
Disk Groups: ASMCDB01,ASMCFR01
Services:
Database is enabled
Database is administrator managed
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ srvctl stop database -d cadtest
PRCC-1016 : cadtest was already stopped
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ srvctl status database -d cadtest
Instance cadtest1 is not running on node hublhp1
Instance cadtest2 is not running on node hublhp3
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ echo $ORACLE_SID
cadtest1
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 2 15:31:55 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> exit
Disconnected
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$
oracle@hublhp1:/home/oracle$ -
Using Connection Pooling in a WLS 5.1.x - Cluster
Hi,
We have problems using connection pooling in a WLS 5.1.x - Cluster. Is it
possible to use CP in such a cluster at all ? The problem is, connections
will be opened and never been closed. How can I configure a cluster for CP?
I have a WLS-Cluster with 2 instances and my webApp uses connection pooling.
By the way I get a connection on Instance 1, Instance 2 gets a connection
also, but never releases it.
In my opinion, the reference to the connection in the partner-instance will
be lost.
How do I have to configure my cluster to work well with that stuff ?
Thank a lot,
Markus.
Clustering with connection pools works fine in WLS 5.1. If connections are
not being release, you have bugs in your code.
When a connection is retrieved from a pool on one instance, a corresponding
connection is NOT retrieved on another instance.
Mike
"M. Hammer" <[email protected]> wrote in message
news:[email protected]..
> Hi,
>
> We have problems using connection pooling in a WLS 5.1.x - Cluster. Is it
> possible to use CP in such a cluster at all ? The problem is, connections
> will be opened and never been closed. How can I configure a cluster for
CP?
>
> I have a WLS-Cluster with 2 instances and my webApp uses connection
pooling.
> By the way I get a connection on Instance 1, Instance 2 gets a connection
> also, but never releases it.
> In my opinion, the reference to the connection in the partner-instance
will
> be lost.
> How do I have to configure my cluster to work well with that stuff ?
>
> Thank a lot,
>
> Markus.
>
>
>
-
SQL Server 2000 and Named Instances
Heya,
I'm having trouble creating a JDBC Connection Pool against our SQL Server box through the Admin Console. There are firewalls between the Weblogic box and the SQL Box, and they have traffic blocked on port 1434. I am specifying port 1433 in the URL, but it seems that it's still trying to do the dynamic port determination through UDP on 1434. My URL is along the lines of:
jdbc:bea:sqlserver://99.99.99.99\\MYINSTANCE:1433
Is there a way with named instances to force the driver to use the indicated port? I'm going to see if they'll open up port 1434 for a test, but I wanted to know if there are other options.
Thanks,
AnnaAnna Veirauchs wrote:
Heya,
I gave it a try and it threw a socket error: Unknown host 99.99.99.99/myinstance
I've been researching the issue on my end and I think I might be able to treat it like a non-named instance. This was sort-of hinted at in some Microsoft documentation for their JDBC driver. On Weblogic I put it in as 99.99.99.99 instead of 99.99.99.99\\myinstance and I got a connection. I'm confirming with my DBA that it somehow connected to the right database. It could be that since they've set up SQL Server with static ports it doesn't need the instance name. In SQL Server, you can't use dynamic p
ort discovery if your database is not a member of a named instance, so the JDBC is forced to use the port you specify. Most people use dynamic discovery with named instances, but probably for security reasons our DBA does not want to use it.
I really appreciate you taking time to look into this for me!
Thanks,
Anna
P.S. That Admin Console does have another problem when setting up pools with named instances.
You put it in as 99.99.99.99\\myinstance, the test will connect correctly, but when you try
to create and deploy to a server you get an error because it appears to write 99.99.99.99myinstance somewhere.
You usually have to go back to the Properties attribute and reinsert the "\\" for it to work right.you're very welcome. I will file a change request about the double back-slash...
Joe -
Max-instances-per-pk attribute
Does anybody know what is "max-instances-per-pk" attribute in
<entity-deployment> element in orion-ejb-jar.xml file?
I'm using oc4j version:
E:\oc4j\j2ee\home>java -jar oc4j.jar -version
Oracle9iAS (9.0.2.0.0) Containers for J2EEand when I deploy my CMP EJB I get this attribute added to my orion-ejb-jar.xml file with value 20!!!!!
And when I try to create (or findByPrimaryKey) many beans with
the same primary key, after 20 my server is hanging and I get timeout exceptions:
for (int i=0; i<100; i++) mybean.findByPrimaryKey("1");
when i==20 I get:
com.evermind.server.ejb.TimeoutExpiredException: timeout expired waiting for an instance
at com.evermind.server.ejb.DBEntityWrapperPool.getWrapperInstance(DBEntityWrapperPool.java:189)
at com.evermind.server.ejb.DBEntityEJBHome.getWrapperInstance(DBEntityEJBHome.java:135)
at CatalogHome_EntityHomeWrapper10.findByPrimaryKey(CatalogHome_EntityHomeWrapper10.java:302)
at pl.empolis.delta.modules.catalogman.CatalogManagerBean.getCatalogEntryByPublicID(CatalogManagerBean.java:56)
at CatalogManager_StatelessSessionBeanWrapper6.getCatalogEntryByPublicID(CatalogManager_StatelessSessionBeanWrapper6.java:734)
at java.lang.reflect.Method.invoke(Native Method)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:80)
at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:62)
How do I set this value to infinity?
Why I can not find any documentation about this?????
Please help,
ArturArtur -- max-instances-per-pk controls the size of the pool of wrapper instances for OC4J. I would just set it to a very large
integer value. It will be documented in the production release of the EJB guide but for now here is a section from
book. Also, the cache will be able to be disabled but that function was not in the pre-release. Lastly, we should be
posting some of the documentation very soon (look for an announcement) so that will help to clarify some things.
The wrapper instance is OC4J-generated wrapper code that provides for the
services requested in the deployment descriptor. Before the bean instance is
invoked, the client retrieves a handle to the wrapper instance. When the client
invokes the bean, the wrapper is associated with a bean instance.
The max-instances-per-pk attribute sets the maximum entity bean
wrapper instances allowed in its pool for a given primary key. An entity beans
wrapper code can be pooled if it is not used by a client.
The default maximum value is 50. Set the maximum wrapper instances as
follows:
<entity-deployment ... max-instances-per-pk="20"
</entity-deployment>
Set the minimum wrapper instances as follows:
<entity-deployment ... min-instances-per-pk="2"
</entity-deployment>
Thanks -- Jeff -
Pooled jdbc connection(s), and server resources
Hello All,
I am curious about the difference between jdbc connections in a connections pool, and 'stand alone' connection. I have Oracle 9.2
To describe...
In my application server (WebLogic) I have a connection pool, with 10 connections. Does this take less server resources than 10 separate connections? I notice that there are still 10 server processes appearing.
thanks!
JM
the jdbc Programmer's Guide and Reference says...
(( start quote ))
A pooled connection instance encapsulates a physical connection to a database. This
database would be the one specified in the connection properties of the connection
pool data source instance used to produce the pooled connection instance.
A pooled connection instance is an instance of a class that implements the standard
javax.sql.PooledConnection interface. The getConnection() method
specified by this interface returns a logical connection instance that acts as a
temporary handle to the physical connection, as opposed to encapsulating the
physical connection, as does a non-pooling connection instance:
(( end quote ))
...I had the impression that a connection pool of 10, results in one 'physical' connection. But it appears not!No, and yes...
A pool of 10 connections creates 10 physical database connections, which require exactly the same resources as 10 connections from a standalone Java app or 10 connections from SQL*Plus.
The connection pool, however, allows those 10 physical connections to server one the order of 100 logical connections (in an average OLTP application). If you have a JSP page that opens a connection, runs a couple of DML statements, and closes the connection, having a connection pool greatly reduces the load on the database because it does not have to create a new physical connection for every JSP page-- the JSP page gets a connection from the pool, uses it for a bit, and returns it to the pool where it can be assigned to another JSP page. Because each user only needs the connection a small percentage of the time, you can server many physical users with only 1 physical database connection.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
JNDI lookup name in a standalone oc4j instance
Hi,
Could you please let me know how to create a JNDI lookup name for a database in a stanalone OC4j Instance?
Both OC4J and oracle 9i database are in the same server.
Thanks in advance,
SukonyaHi,
I have the oracle 9i database as well as the oc4j instance in my local machine.I am trying to deploy a J2ee Application on the OC4j instance,using eclipse IDE.I have not created any connection pool or datasource in the oc4j instance but after i build the application I see that the connection pool and datasource instance have been created in the OC4j instance.
following are the contents of the build.xml file(for the ant build tool)
<?xml version="1.0" encoding="UTF-8" ?>
- <project name="TicketLoggingSystem" default="bind-web-app" basedir="../">
<property name="app.server" value="D:/oc4j/j2ee/home" />
<property name="dest.dir" value="${basedir}/dest" />
<property name="war.file" value="${dest.dir}/TicketLoggingSystem.war" />
<property name="ear.file" value="${dest.dir}/TicketLoggingSystem.ear" />
<property name="web.inf" value="${basedir}/WEB-INF" />
<property name="web.classes" value="${dest.dir}/classes" />
<property name="app.xml" value="${basedir}/application.xml" />
<property name="src.dir" value="${basedir}/src" />
<property name="oc4j.host" value="localhost" />
<property name="oc4j.admin.port" value="23791" />
<property name="oracle.home" value="D:/oc4j" />
<property name="j2ee.home" value="${oracle.home}/j2ee/home" />
<property name="oc4j.admin.username" value="oc4jadmin" />
<property name="oc4j.admin.password" value="welcome" />
<property name="oc4j.ormi" value="ormi://${oc4j.host}:${oc4j.admin.port}" />
<property name="app.name" value="TicketLoggingSystem" />
<property name="jdbc.url" value="jdbc:oracle:thin:@localhost:1521:80" />
<property name="jdbc.username" value="scott" />
<property name="jdbc.password" value="tiger" />
<property name="connection.driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="connection.datasource" value="oracle.jdbc.pool.OracleDataSource" />
<property name="xa.location" value="jdbc/xa/MpsiDS" />
- <!-- Delete dest folder
-->
- <target name="init">
<delete dir="${dest.dir}" includeemptydirs="true" />
<mkdir dir="${dest.dir}" />
<mkdir dir="${web.classes}" />
</target>
- <!-- Compile all Java files
-->
- <target name="wscompile">
- <javac srcdir="${src.dir}" destdir="${web.classes}" deprecation="on" debug="on">
<exclude name="**/*.properties,**/*.xml" />
- <classpath>
<fileset dir="${web.inf}/lib" includes="*.jar" />
<fileset dir="${app.server}/lib" includes="servlet.jar" />
</classpath>
</javac>
</target>
- <!-- Build Web archive file
-->
- <target name="buildWar" depends="init,wscompile">
- <war destfile="${war.file}" webxml="${web.inf}/web.xml">
- <fileset dir="${basedir}">
<include name="content*/**" />
</fileset>
<webinf dir="${web.inf}" includes="*.xml,*.tld" excludes="web.xml" />
<classes dir="${web.inf}/classes" />
<lib dir="${web.inf}/lib" includes="*.jar" />
</war>
</target>
- <!-- Build Enterprsie Archive
-->
- <target name="buildEar" depends="buildWar">
- <ear destfile="${ear.file}" appxml="${app.xml}">
<fileset dir="${dest.dir}" includes="*.war" />
</ear>
</target>
- <!-- Checking availability of oc4j
-->
- <target name="check-oc4j-available">
<echo message="------> Checking to see if OC4J is started ." />
<echo message="[checking oc4j on machine =${oc4j.host}]" />
<echo message="[port=${oc4j.admin.port}]" />
- <condition property="oc4j.started">
<socket server="${oc4j.host}" port="${oc4j.admin.port}" />
</condition>
</target>
- <!-- Remove data source
-->
- <target name="remove-data-source" depends="check-oc4j-available" if="oc4j.started">
<echo message="Removing DataSource" />
- <java jar="${j2ee.home}/admin.jar" fork="true">
<arg value="${oc4j.ormi}" />
<arg value="${oc4j.admin.username}" />
<arg value="${oc4j.admin.password}" />
<arg value="-application" />
<arg value="${app.name}" />
<arg value="-removeDataSource" />
<arg value="-location" />
<arg value="jdbc/TicketLoggingSystem" />
</java>
<echo message="Removed DataSource Successfully" />
</target>
- <!-- Undeploy
-->
- <target name="undeploy" depends="remove-data-source" description="Undeploying the application" if="oc4j.started">
<echo message="Undeploying the Application ${app.name}" />
- <java jar="${j2ee.home}/admin.jar" fork="true">
<arg value="${oc4j.ormi}" />
<arg value="${oc4j.admin.username}" />
<arg value="${oc4j.admin.password}" />
<arg value="-undeploy" />
<arg value="${app.name}" />
</java>
<echo message="Undeploying the Application ${app.name} is Successful" />
</target>
- <!-- Deploy
-->
- <target name="deploy" depends="undeploy,buildEar" if="oc4j.started">
<echo message="Deploying the Application ${app.name}" />
- <java jar="${j2ee.home}/admin.jar" fork="true">
<arg value="${oc4j.ormi}" />
<arg value="${oc4j.admin.username}" />
<arg value="${oc4j.admin.password}" />
<arg value="-deploy" />
<arg value="-file" />
<arg value="${ear.file}" />
<arg value="-deploymentName" />
<arg value="${app.name}" />
</java>
<echo message="Deploying the Application ${app.name} is Successful" />
</target>
- <!-- Create data source
-->
- <target name="create-data-source" depends="check-oc4j-available" if="oc4j.started">
<echo message="Creating DataSource for Application ${app.name}" />
- <java jar="${j2ee.home}/admin.jar" fork="true">
<arg value="${oc4j.ormi}" />
<arg value="${oc4j.admin.username}" />
<arg value="${oc4j.admin.password}" />
<arg value="-application" />
<arg value="${app.name}" />
<arg value="-installDataSource" />
<arg value="-jar" />
<arg value="${oracle.home}/jdbc/lib/ojdbc14dms.jar" />
<arg value="-url" />
<arg value="${jdbc.url}" />
<arg value="-connectionDriver" />
<arg value="${connection.driver}" />
<arg value="-location" />
<arg value="jdbc/TicketLoggingSystem" />
<arg value="-username" />
<arg value="${jdbc.username}" />
<arg value="-password" />
<arg value="${jdbc.password}" />
<arg value="-className" />
<arg value="${connection.datasource}" />
</java>
<echo message="Created DataSource Successfully for Application ${app.name}" />
</target>
- <!-- Binding web-app
-->
- <target name="bind-web-app" depends="deploy,create-data-source" if="oc4j.started">
<echo message="executing bind web app" />
- <java jar="${j2ee.home}/admin.jar" fork="true">
<arg value="${oc4j.ormi}" />
<arg value="${oc4j.admin.username}" />
<arg value="${oc4j.admin.password}" />
<arg value="-bindWebApp" />
<arg value="${app.name}" />
- <!-- app deployname
-->
<arg value="${app.name}" />
- <!-- web module name
-->
<arg value="default-web-site" />
- <!-- web site name
-->
<arg value="/${app.name}" />
- <!-- context root
-->
</java>
<echo message="Access the application using: http://${oc4j.host}:8888/${app.name}" />
</target>
</project>
Following are the contents of Oc4J home->services->jdbc resources:
Datasource:
Name jdbc/TicketLoggingSystem
Application TicketLoggingSystem
JNDI Location jdbc/TicketLoggingSystem
Connection Pool
Managed by OC4j
Test
when i click the datasource name,I see that its type is Native datasource with no related connection pool.
Whereas for the default datasource oracleDS,
Type Managed Data Source
Connection Pool Example Connection Pool
However on deployment a connection pool is also created along with the datasource
Name jdbc/TicketLoggingSystem_connectionPool
Application TicketLoggingSystem
ConnectionFactory class : oracle.jdbc.pool.OracleDataSource
Do we need to bind this connection pool to our datasource?If yes how is it done.And if that is not required,why is this connection pool created?Are the datasource and connection pool already bound to each other?
Also when I test either the datasource or connection pool,it says
Confirmation
Connection to "jdbc/TicketLoggingSystem_connectionPool" established successfully
or
Connection to "jdbc/TicketLoggingSystem" established successfully.
and displays both the connection pool and datasource details together for both the tests.
In my java code,while trying to establish connection to the database what should I mention in lookup i.e,
InitialContext context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup(" jdbc/TicketLoggingSystem or jdbc/TicketLoggingSystem_connectionPool");
con = dataSource.getConnection();
Sorry if I am sounding novice.Thanks a lot in advance,
Sukanya -
Monitor Application Module Pool
Hi i am tunning my ADF app parameters, how can i monitor my Application Module Pool (Like live instances and so on) so i can make adjustments on its values?
See example #83 on my blog:
http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html
Maybe you are looking for
-
No airplay output to apple tv from iPad 2
I'm trying to stream a web video in an iPad safari browser and output it to my Apple TV (gen 2). It says it's streaming on the iPad, but is stuck at 0:00, and the spinning icon on the TV never changes. What can I try? Both devices are updated to c
-
SO--DELI-PGI--Proforma Invoice--No Accounting Doc?
Hi All, We've a scenario wherein, we're combining some normal deliveries and return deliveries into a 'collective invoice' and in some cases, the net value of the billing document is ZERO. And when the net value is ZERO, we want to create a proforma
-
Hi, A contiuation of my previous acrobat problems (which i solved) is as follows: Can i somehow see/feel/check if the acrobat activex control is finished? As it is now, i have a time delay, but as the clients computers are very varying in speed and i
-
Default data in Customs document
Hello How do I make default data into a field setting with conditions such as if Field A is 'X' and Field B is 'Y', then there should be a default data 'Z' into Field C. Example, in Customs declaration document, if Country of Dep is X from header inf
-
please help me i can not get into my games at face book after i downloaded the newest file version 16.0.0.240 of flash player yesterday what to do ? windows 7 Firefox thanks for your help