Help with Oracle Connection Pooling
Hi,
I want to create a connection pool that can be accessible in any jsp and in any class of my web application. Is it a good idea to create a class with a static member of type OracleDataSource or any class that handles connections?
Rafa,
In order to use JSP, you usually need an application server.
Oracle's application server already has connection pooling built in.
No need to re-invent the wheel.
(In fact most application servers provide database connection pooling.)
Good Luck,
Avi.
Similar Messages
-
Urgent help (on oracle connection pool)
Hi ,
I downloade oracle 8i thin drivers and i am using conenction pool in my application ...
I executed that servlet program
When i try to get conneciton using getDatabaseConnection() method in my jsp i am getting new connection each time ...............
In the oracel doc i read some thing like logical connections and physical connections .............
In my code i set maxLimit to 3 and i am getting connections more than 3 ( all are different).................
When i refresh the browser i am getting different connections like:
con======oracle.jdbc.driver.OracleConnection@338576
con======oracle.jdbc.driver.OracleConnection@1691dec
con======oracle.jdbc.driver.OracleConnection@63ceb4
con======oracle.jdbc.driver.OracleConnection@1590f50
con======oracle.jdbc.driver.OracleConnection@aeff82
con======oracle.jdbc.driver.OracleConnection@906e5b
con======oracle.jdbc.driver.OracleConnection@2403cf
con======oracle.jdbc.driver.OracleConnection@17ab157
See i set max limit as 3 and i got more than 3 connections and each diff ................
What is wrong in my code ............
Please help to me ..........
Here is the code :
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import oracle.jdbc.driver.*;
import oracle.jdbc.pool.*;
public class PoolJdbc4 extends HttpServlet{
private OracleConnectionPoolDataSource ocpds;
private OracleConnectionCacheImpl ods;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
ocpds =new OracleConnectionPoolDataSource();
ocpds.setURL("jdbc:oracle:xxxxxxxxx");
// ocpds.setUser("xxx");
// ocpds.setPassword("xxx");
// Associate it with the Cache
ods = new OracleConnectionCacheImpl(ocpds);
// Set the Max Limit
ods.setMaxLimit (3);
// Set the Scheme
ods.setCacheScheme (OracleConnectionCacheImpl.FIXED_RETURN_NULL_SCHEME);
catch (Exception e) {
throw new UnavailableException(this, "Couldn't create connection pool");
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Connection con = null;
res.setContentType("text/plain");
PrintWriter out = res.getWriter();
out.println("Updating salary");
try {
con = ods.getConnection("xxxxx","xxx");
System.out.println("con======="+con);
// Turn on transactions
con.setAutoCommit(false);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from checkout_checkin");
while(rs.next())
out.println(rs.getString(1)+"<br>");
stmt.close();
rs.close();
con.close();
catch (Exception e) {
// Any error is grounds for rollback
try {
con.rollback();
catch (Exception ignored) { }
out.println("No more connections available, try later");
}ketan reddy - I'm pretty sure you are not getting a new connection each time even though you are seeing a different connection identifier printed each time you get a new connection.
If you have system privs, try looking at v$session while your servlet is running. I think you will see that you only have a single connection and it is being used each time.
For another test, try commenting out your conn.close() call so that you do not free up connections. Your servlet should fail after 3 executions cause it will not be able to get any more connections - because you specified
ods.setMaxLimit (3);
ods.setCacheScheme (OracleConnectionCacheImpl.FIXED_RETURN_NULL_SCHEME);
Good Luck
tim -
I need help with socket connection pooling please
I need a basic connection pooling system for the code below users sets number connections 5 etc.
<main class>
s = new ListService(ssock.accept(),serverDir); //give list to client
Thread t = new Thread(s);
t.start();
<main class>
class ListService implements Runnable
Socket client;
String serverDir;
public ListService(Socket client,String serverDir)
this.client = client;
this.serverDir = serverDir;
public void run()
try
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
// send something to client
catch(Exception e)
System.out.println(e);
System.out.println("client disconnected\n");
catch(Exception e){}
Thank you so muchMy code already accepts multi clients I need pooling only 5 clients can be using the server at a time when one client disconnects that means another incoming client can enter the pool to use the server.
I tried to do a counter so when a connection is made it increments and then if counter>=numOfClients
set a variable to true or false and this is sent with the server setup so it determines if the server code is run or it just closes the connection but there is no way I can access the counter variable from within a runnable class thread when a client closes connection it should -1 from the variable
thanks -
Hi,
I am new to the whole Java experience and am wading my way through servlets pretty well. However, I have run across a problem that I simply cannot connect the pieces of. I have a set of servlets that I am planning on deploying to a client. These servlets will connect to an Oracle database. Since the client connection url/user/password will not be the same as the values I am using in my development efforts, I don't want to set the values in my servlets, i.e:
OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
ocpds.setURL("jdbc:oracle:thin:@databasename");
ocpds.setUser("User");
ocpds.setPassword("Password");
// Create a pooled connection
PooledConnection pc = ocpds.getPooledConnection();
I have created my servlets using Oracle's JDeveloper, so I have a connections.xml file and a data-sources.xml file which contain the URL, userID and Password of the instance to connect to.
Is there a way I can grab that information from the connections.xml file or the data-sources.xml file from within my servlet, so I don't have to give static values for the URL, userID and password within the servlet?
Thanks for the help,
-PeteHi Pete,
You can do either one of two solutions:
(1) Your XML files idea is a good one. Read them in the servlet init method and hang onto the values.
(2) You can create a JNDI DSN and use a pooled connection that's maintained by your servlet/JSP container. Here's how I do it with Tomcat 4.1:
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html
Maybe that will give you some ideas on how to accomplish the same thing using your container. - MOD -
Help with Oracle Connection- "Input string was not in a correct format"
Hello, can some one, anyone please help me. I have a simple VS 2005 C# application that connects to oracle. I've set it up to take the username, password and tnsname as arguments. I am using Client 9i, version 9.2.0.401 of Oracle.DataAccess.dll, and .NET Framework 2.0.
It works fine when I run it from VS 2005, I have also set up a test machine w/o VS 2005 and ran my install package and it runs fine. I sent it to one of my co-workers and when he tries it the OracleConnection obect fails with the error.
"Input string was not in a correct format"
strange in that it is not an ORA error, just the identifed text!?
Here is the code:
## begin code
OracleConnection dbc = new OracleConnection();
string sConnectString = "User Id=" + username.ToString() + ";Password=" + password.ToString() + ";Data Source=" + tnsname.ToString();
dbc.ConnectionString = sConnectString.ToString();
MessageBox.Show("Attempting to Connect to Oracle");
dbc.Open();
MessageBox.Show("Connected to Oracle: " + dbc.ServerVersion);
## end code
Pretty basic, what could be going on?
Since this only happens with an installation, I put in the message boxes to verify exactly where it chokes. I get the first message box, then an error with the identified text. I've seen a number of posts regarding input string format problems, but not a one dealing with OracleConnection.Open(). I added all the ToString() calls just to make sure everything was a string but it did not change the end result.
Anyone? Thanks In advance!
Eric S.Hello,
well, i got a message "...string not wellformed format...", too.
If you have defined the parameters as string, you don't need the additonal "ToString()". Please ckeck your tnsnames -string. Try to debug this. I believe you have copy the format from the tnsnames.ora and there you have much brackets.
For example, two code snippets:
As datasource i use <Server>:<Port>/<Instance>
try
string FDsn ="User Id="+FDbUser+";Password="+FDbPwd;
FDsn +=";Data Source=wth5:1521/Ora9.wth5";
FConn = new OracleConnection(FDsn);
FConn.Open();
if (FConn.State == ConnectionState.Open )
FConn.Close();
catch (Exception ex)
FStateMsg = "Connection to database failed. Check Configuration in parameter: ConnectionString. " + ex.Message;
Above i connect to a Ora 9.2.0.1
by using
FDsn +=";Data Source=wth5:1522/XE";
i connect to an OraExpress database on the same machine.
My Oracle.dataAccess.dll ist the newest, 10.2.... and it runs under Framework 1.1.x and Framework 2.x
I'll hope it will help you. Best regards! -
Oracle Connection Pool failure in COM+
I am having some trouble trying to get a specific database to work with an application that makes use of a COM+ Application. When we point the application at the UAT database everything seems fine, but when we point it to the production database after a few successful calls it ends up failing at the COM+ application recycles. The event viewer provides the following information:
Event Type: Error
Event Source: COM+
Event Category: Unknown
Event ID: 4786
Date: 8/5/2007
Time: 12:54:46 PM
User: N/A
Computer: APPL_SERVER
Description:
The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.
Component Prog ID: Oracle Connection Pool - tnsnames_alias
Method Name: IDispenserDriver::CreateResource
Server Application ID: {30A93CB3-25EB-4258-8C88-5AE103B7B86F}
Server Application Instance ID:
{A57C513E-519F-45BD-B46D-DC54B285F534}
Server Application Name: COM+ Application Name
The serious nature of this error has caused the process to terminate.
Exception: C0000005
Address: 0x7C8327F9
Call Stack:
+ 0x7c8327f9
ntdll!RtlFindActivationContextSectionGuid + 0x7d2
ntdll!RtlInitializeSListHead + 0x175
ntdll!RtlFindActivationContextSectionGuid + 0x1b7
msvcrt!malloc + 0x6c
oracommon9!sktsfMalloc + 0x14
orageneric9!kpummapg + 0x58
orageneric9!kghalo + 0xabb
orageneric9!kghalf + 0x102
orageneric9!kopo2cpc + 0x61
orageneric9!kopeini + 0x1d
orageneric9!kopo2cpc + 0xd2
orageneric9!kopopgi + 0x117
OraClient9!koudpnp + 0x712
OraClient9!koudpnp + 0x101
OraClient9!kpuinit0 + 0xb19
OraClient9!kpuinit + 0x38
OraClient9!OCIEnvInit + 0x1c
oramts!kpntsrvr::kpntsrvr(class kpntdbid *) + 0x80
oramts!kpntdbid::allocNewSrvr(struct SIDAND_ATTRIBUTES *) + 0x138
oramts!kpntdbid::GetSrvr(class kpntsvrl * *,unsigned long) + 0x7df
oramts!kpntdisp::getNet8conn(class kpntsvrl * *,unsigned long) + 0x41
oramts!kpntsess::initOCI(void) + 0xec
oramts!kpntsess::sessionBegin(void) + 0x17b
oramts!kpntdisp::CreateResource(unsigned long,unsigned long *,long *) + 0xc4
COMSVCS!DispManGetContext + 0xa3d
COMSVCS!DispManGetContext + 0x1fee
oramts!kpntdisp::allocateConnection(class kpntsess * *,unsigned long,class kpntrtyp *) + 0x3c4
oramts!_kpntsvcgetex + 0x183
oramts!_kpntsvcget + 0x25
oramts!kpntctra::getConnectionAndHandles(class kpntrtyp *,struct OCISvcCtx * *,struct OCITrans * *,struct OCIError * *) + 0x87
oramts!kpntctra::abortBranch(struct xid_t &,class kpntbrnch *,struct BOID *,int,struct BOID *) + 0x15a
oramts!kpntctra::doAbort(struct BOID *,int,struct BOID *) + 0x454
oramts!kpntajob::doJob(void) + 0x27
oramts!kpntjobq::serviceRequest(class kpntjob *) + 0x3e
oramts!workerThread(void *) + 0xd0
msvcrt!_endthreadex + 0xa3
kernel32!GetModuleFileNameA + 0xeb
Not being an expert in Oracle, I have been able to dig up a little bit of information that might be of use ...
a) Our tnsnames.ora indicates that the connections are to be DEDICATED and running Toad bares this out -- dllhost ends up with a single connection.
b) most of the database initial set of parameters seem to be very similar. The only difference I noticed was that the archive log mode and db_cache_advice are ON for production.
c) We have little control over how the connection strings are being created internally in this COM+ application, but however they are created it works for UAT and doesn't for PROD.
d) When we go into our web application and hit a page that makes use of the COM+ component to render, it will work the first time but when I do a simple browser refresh it will usually fail on the 2nd or 3rd time. Almost like it is trying to expand the connection pool size and the oracle server is throwing up.
If I didn't mention earlier the two database instances run on different servers but the application server is exactly the same. We only change the alias we are using for the database (both are defined in tnsnames) and the password used to make its connection.
Does anyone have any clues on this one? I am really spinning my wheels trying to figure out what could cause this type of situation. Anything at all would be very helpful.It appeared to us that the problem was with the Oracle server and that it might have been failing when we were trying to expand our application connection pool size or basically obtain more connections.
The biggest indicator of this is that we run the same application code against two different databases and one works and one does not work. Having said this, I suppose the problem could be rooted in a data error instead of an oracle server error ...
Is there a specific trace file on the oracle server that would help me point to any error that is truly an oracle server error? Sorry I am very new to Oracle. -
Websphere Application Server 5.1 Hangs when using Oracle Connection Pool
I have a j2ee application that runs on WAS 5.1 ( IBM JDK 1.4 ) and Oracle 10g 10.2.0 . My customer is doing load testing with 25 virtual users and a connection pool with a max size of 10. When the test starts all 25 users attempt to get a connection, and the first 10 get a connection. At this point the application server hangs with the connection pool in allocation. This is seen in Tivoli. Each thread only needs one connection to process it's request.
I have my own home grown connection pool which when used under this load does not experience and issue. Monitoring from Oracle's admin console I see a max of 10 sessions. The home grows connection pool does not use a WAS DataSource.
I have configured my application to use DB2 with a WAS DataSource and the application server does not hang. Monitoring using Tivoli shows the connection pool going into allocation, but it recovers as is expected.
Are there any known issues with the Oracle JDBC drivers when used with WAS 5.1 DataSources?
Any direction would be helpful, as I currently thing there is an issue with Oracle's Connection Pool and the IBM JVM.
Thanks,
Jjust an attention call: OracleDatasource connection pool does not accept parameters such as removeAbandoned, minEvictableIdleTimeMillis, timeBetweenEvictionRunsMillis, etc, these are specific for the tomcat dbcp implementation (http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
For the accepted ones read this http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/concache.htm
Edited by: user7428636 on 24/Jan/2011 6:22 -
Problem with creating Connection pool and JNDI, driver is not detected
Hi,
I have an issue with creating Connection Pool and JNDI.
I'm using:
- JDK 1.6
- OS: Linux(ubuntu 8.10)
- Netbeans IDE 6.5.1
- Java EE 5.0
- Apache Tomcat 6.0.18 Its lib directory contains all necessary jar files for Oracle database driver
- Oracle 11g Enterprise
My problem is that the Oracle database driver is not detected when I want to create a pool (it works pretty well and is detected without any problem when I create ordinary connection by DriverManager)
Therefore after running:
InitialContext ic = new InitialContext();
Context context = (Context)ic.lookup("java:comp/env");
DataSource dataSource = (DataSource)context.lookup("jdbc/oracle11g");
Connection connection = dataSource.getConnection();and right after dataSource.getConnection() I have the following exception:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at servlets.Servlet1.doPost(Servlet1.java:47)
at servlets.Servlet1.doGet(Servlet1.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
... 17 more
My application context file (context.xml) is:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/WebApplication3">
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
maxActive="8"
maxIdle="4"
name="jdbc/oracle11g"
username="scott"
password="tiger"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@localhost:1521:database01" />
</Context>and my web.xml is:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/oracle11g</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
...I found similar threads in different forums including sun, such as
http://forums.sun.com/thread.jspa?threadID=567630&start=0&tstart=0
http://forums.sun.com/thread.jspa?threadID=639243&tstart=0
http://forums.sun.com/thread.jspa?threadID=5312178&tstart=0
, but no solution.
As many suggest, I also tried to put context directly in the server.xml (instead of my application context) and referencing it by <ResourceLink /> inside my application context but it didn't work and instead it gave me the following message:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ' ' for connect URL 'null'
Has anyone succeeded in creating a connection pool with JNDI by using Tomcat 6 or higher ? If yes, could kindly explain about the applied method.
Regards,Hello again,
Finally I managed to run my application also with Tomcat 6.0.18. There was only two lines that had to be modified
in the context.xml file (the context of my application project and not server's)
Instead of writing
<Context antiJARLocking="true" path="/WebApplication2">
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
</Context>we had to write:
<Context antiJARLocking="true" path="/WebApplication2">
type="oracle.jdbc.pool.OracleDataSource"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
</Context>- No modification was needed to be done at server level (niether server.xml nor server context.xml)
- I just added the ojdbc6.jar in $CATALINA_HOME/lib (I didn't even need to add it in WEB-INF/lib of my project)
- The servlet used to do the test was the same that I presented in my precedent post.
For those who have encountered my problem and are interested in the format of the web.xml and context.xml
with Tomcat 6.0, you can find them below:
Oracle server: Oracle 11g Enterprise
Tomcat server version: 6.0.18
Oracle driver: ojdbc.jar
IDE: Netbeans 6.5.1
The context.xml file of the web application
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/WebApplication2">
<Resource name="jdbc/oracle11g"
type="oracle.jdbc.pool.OracleDataSource"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
url="jdbc:oracle:thin:@localhost:1521:database01"
driverClassName="oracle.jdbc.OracleDriver"
userName="scott"
password="tiger"
auth="Container"
maxActive="100"
maxIdle="30"
maxWait="10000"
logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="60" />
</Context>The web.xml of my web application
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<resource-ref>
<description>Oracle Database 11g DataSource</description>
<res-type>oracle.jdbc.pool.OracleDataSource</res-type>
<res-auth>Container</res-auth>
<res-ref-name>jdbc/oracle11g</res-ref-name>
</resource-ref>
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>servlets.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/Servlet1</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>Ok, now I'm happy as the original problem is completely solved
Regards -
Help to Configure Connection Pool For Jdeveloper
Hi ,
I am using Jdeveloper 10.1.2 and Oravle AS 10.1.2.
Language Used : J2EE,Struts and EJB
I am portletizing struts application.
I need help to configure Connection pool. By default it is taking a datasource.xml not the one i had defined. Pls help me out. Affecting the performance due to so many hit to db.
regards,
Jayashree JeganHi John,
Go through this thread of mine. You will get the required information to setup the connection pool.
SOAP adapter: WSDL issue
Also just check in Visual Studio Help .NET Connector for Connection Config class settings. You will see all the relevent parameters related with connection pool.
Regards. -
Request Help With Oracle BI Apps 7.9.x development license
Request some one from Oracle to PLEASE help with the following query or help me to move the post to right forum.
I have downloaded BI Apps 7.9 to load it on top of BI EE. These are received from Development Downloads under OTN site (not eDelivery). Both these are planned as development install on one machine with sufficient specs on Windows 32 bit platform.
BI EE is loaded and starts successfully. Then switched of the services and started to load BI Apps CD1. Done it successfully. Next while starting to install Informatica PowerCenter 7.1.4 it asks product license key. Please help to know where to get this key? Also please help with any connectivity and options key, as well as those for any other products, related to this objective.
Many thanks,Hi RAJC,
Many thanks for the suggestion. I have moved past that aspect now with this help. Have also verified that everything is working well with BI server, presentation services, scheduler server etc. Admin tool works fine.
But have difficulty connecting DAC client to the database. The login window does not bring up option to select suitable driver for connecting to Oracle Database 10.2.0.x Also, wonder what table owner name and pw will work here? are they the same as those for schema owner? that is sh.rpd etc? The BI apps version is 7.9 and BIEE is 10.1.3.3
Thanks -
Problem with JCo Connection Pool
Hi,
I have a problem with using an RFC Model in my WebApplication. So sometimes the access to the function block works, and sometimes it doesn't work. Now I know, that there is a problem with the connection pool. Look at this message:
com.sap.mw.jco.JCO$Exception: (106) JCO_ERROR_RESOURCE: Connection pool WD_X24_MODELDATA_DEST_CPIC_REKTO_DE_useDefinedUser is exhausted. The current pool size limit (max connections) is 10 connections.
So it looks like a problem with closing the JCo Connections after using. Do know where the problem is? Because I'm using many other function blocks with no problems.Hello,
You need to increase the pool size via Visual Administrator.
Server 0 -> Services -> JCO RFC Connections.
Change the pool size from there. I believe a restart is in order.
Regards,
Jan -
Help with oracle 11g pivot operator
i need some help with oracle 11g pivot operator. is it possible to use multiple columns in the FOR clause and then compare it against multiple set of values.
here is the sql to create some sample data
create table pivot_data ( country_code number , dept number, job varchar2(20), sal number );
insert into pivot_data values (1,30 , 'SALESMAN', 5000);
insert into pivot_data values (1,301, 'SALESMAN', 5500);
insert into pivot_data values (1,30 , 'MANAGER', 10000);
insert into pivot_data values (1,301, 'MANAGER', 10500);
insert into pivot_data values (1,30 , 'CLERK', 4000);
insert into pivot_data values (1,302, 'CLERK',4500);
insert into pivot_data values (2,30 , 'SALESMAN', 6000);
insert into pivot_data values (2,301, 'SALESMAN', 6500);
insert into pivot_data values (2,30 , 'MANAGER', 11000);
insert into pivot_data values (2,301, 'MANAGER', 11500);
insert into pivot_data values (2,30 , 'CLERK', 3000);
insert into pivot_data values (2,302, 'CLERK',3500);
using case when I can write something like this and get the output i want
select country_code
,avg(case when (( dept = 30 and job = 'SALESMAN' ) or ( dept = 301 and job = 'SALESMAN' ) ) then sal end ) as d30_sls
,avg(case when (( dept = 30 and job = 'MANAGER' ) or ( dept = 301 and job = 'MANAGER' ) ) then sal end ) as d30_mgr
,avg(case when (( dept = 30 and job = 'CLERK' ) or ( dept = 302 and job = 'CLERK' ) ) then sal end ) as d30_clrk
from pivot_data group by country_code;
output
country_code D30_SLS D30_MGR D30_CLRK
1 5250 10250 4250
2 6250 11250 3250
what I tried with pivot is like this I get what I want if I have only one ( dept,job) for one alias name. I want to call (30 , 'SALESMAN') or (301 , 'SALESMAN') AS d30_sls. any help how can I do this
SELECT *
FROM pivot_data
PIVOT (SUM(sal) AS sum
FOR (dept,job) IN ( (30 , 'SALESMAN') AS d30_sls,
(30 , 'MANAGER') AS d30_mgr,
(30 , 'CLERK') AS d30_clk
this is a simple example .... my real life scenario is compliated with more fields and more combinations .... So something like using substr(dept,1,2) won't work in my real case .
any suggestions get the result similar to what i get in the case when example is really appreciated.Hi,
Sorry, I don't think there's any way to get exactly what you requested. The values you give in the PIVOT ... IN clause are exact values, not alternatives.
You could do something like this to map all alternatives to a common value:
WITH got_dept_grp AS
SELECT country_code, job, sal
, CASE
WHEN job IN ('SALESMAN', 'MANAGER') AND dept = 301 THEN 30
WHEN job IN ('CLERK') AND dept = 302 THEN 30
ELSE dept
END AS dept_grp
FROM pivot_data
SELECT *
FROM got_dept_grp
PIVOT ( AVG (sal)
FOR (job, dept_grp)
IN ( ('SALESMAN', 30)
, ('MANAGER' , 30)
, ('CLERK' , 30)
;In your sample data (and perhaps in your real data), it's about as easy to explicitly define the pivoted groups individually, like this:
WITH got_pivot_key AS
SELECT country_code, sal
, CASE
WHEN job = 'SALESMAN' AND dept IN (30, 301) THEN 'd30_sls'
WHEN job = 'MANAGER' AND dept IN (30, 301) THEN 'd30_mgr'
WHEN job = 'CLERK' AND dept IN (30, 302) THEN 'd30_clrk'
END AS pivot_key
FROM pivot_data
SELECT *
FROM got_pivot_key
PIVOT ( AVG (sal)
FOR pivot_key
IN ( 'd30_sls'
, 'd30_mgr'
, 'd30_clrk'
;Thanks for posting the CREATE TABLE and INSERT statements; that really helps! -
Hi,
I need some help... if someone can help its great.
I need to make a statement in Oracle SQL that read data from a file and insert in a Oracle Database ... if someone can show me the syntax of it i appreciate..
ThanksOkay, I see you followed the advice in that other thread and started a new post for you question. Congratulations. Your next lesson in forum etiquette is to give your posts a more relevant subject. Pretty much everybody who posts here needs help with oracle; if they need help with cooking catfish they've come to the wrong place.
It that other thread I suggested using SQL*Loader or External Tables might be a more suitable solution. Find out more.
Cheers, APC -
Is possible to work with both Connection Pool?
Hello,
I would like to know if is it possible to work with both Connection Pools: Active Directory and DWH User? If it's yes, how can I specify to work with both simultaneously?
Thank you and regards,
Mónica.Hello Gayathri,
The version is OBISE1 10.1.3.2.1
The scenario is the following:
I have two connection pools
- One is mapping the DWH and it is using the System's variables :USER and :PASSWORD. Then I have an Initialization Block that get these values and I have created the logins as users in the database.
- The other is mapping the DWH tables.
I want to create directly users into the repository. The problem is the users of the repository cann't do the login because the first connection pool is trying to validate then against the database.
Would be possible to validate the users against the connection pool and the repository simultaneously?
Thank you and regards,
Mónica. -
Oracle connection pool problem (dbcp binded with jtom)
Hi,
my webserver is Tomcat5.0.18, I want to offer the connection pool and transaction management
in my currently system
I know in Tomcat5.0 version, we can use the DBCP to offer the database connection pool
service, to apply the transaction management in my system, I adapt the JTOM
now, my problem is
to use DBCP, I setup the datasource factory to be
org.apache.commons.dbcp.BasicDataSourceFactory, the connection pool is ok, but
the transaction management offerred by JTOM will failure
to make the tranaction management of JTOM succeed, I have to setup the datasource factory to be
org.objectweb.jndi.DataSourceFactory, but the connection pool offerred by Tomcat will failure now
it seems that these two datasource factory has conflict
How can I do?, I don't want to use the connection pool offerred in JTOM
Anyone can help me??
Thanks in advanceHi,
I don't know the solution for JOTM, but you could try this JTA and its connection pools:
http://www.atomikos.com ships a JTA that integrates with Tomcat and also provides JDBC connection pooling. There is a GUI control panel so that you don't have to know the XML details for Tomcat's config files.
Best,
Guy
Maybe you are looking for
-
I can no longer get to the ITunes Store after upgrade.
I have tried the Command Prompt Run as Administer and I received this under the Command Prompt. C:\Windows\system32> I do not know what to do next. I did try another suggestion to resolve the issue, but I receive noticification "requires elevation
-
HU_CREATE_GOODS_MOVEMENT refresh problem
I am using FM HU_CREATE_GOODS_MOVEMENT to make a 311 movement. When I run it twice, the first is correct but in the second appears a DUMP. I have solved it creating a simple report ZHU_CREATE_GOODS_MOVEMENT which just launch the FM. Then, in my progr
-
REQ SAP FI MODULE- CERTIFICATION EXAM QUESTIONS AND ANSWERS
REQ SAP FI MODULE- CERTIFICATION EXAM QUESTIONS AND ANSWERS Moderator: We should be thankful that you don't require to solve the exam for you
-
I'm having a problem with the screen sensitivity on my iPad. There seems to be a certain area on the screen that is dead to the touch. When I try to file up or down in that area it won't work. But if I move over a bit, my touch is then recognized. So
-
Edit the Excel file which i have uploaded in my blob domain.
Hi, Am using jdeveloper 11.1.1.6.0., I have dragged and dropped my VO as af:form in which uploadFile is a blobdomain. This is the code which i have used for upload and download my excel document. public void uploadFileValueChangeEvent(ValueChangeEven