StackOverflow in weblogic.jdbc.base.BaseSQLParser
Actually the method parseAlmostAnything throws a StackOverflow exception
when a sql statement containing many ? is given.
For example, using the weblogic 8.1SP2 informix driver, the following SQL request
generates a StackOverflow :
select snwcservic0_.X1624_0_cmMo as x0_0_, snwcservic0_.X1624_1_cmMo as x0_1_,
snwcservic0_.X1607_17_argOs as x1_0_, snwcservic0_.X1607_18_argLayer as x1_1_,
snwcservic0_.X1607_19_argClass as x1_2_, snwcservic0_.X1607_20_sistentId as x1_3_
from snwcservicevers snwcservic0_ where (snwcservic0_.X1624_1_cmMo in(? , ? ,
.. (there are exactly
3386 ? in the request) ...))
There are exacly 3386 ? in this request. The IBM informix driver correctly handles
this request,
as long as there are fewer than 16000 or so ? in the request (think it's a SQL-I
message length
limitation of 64 K or something like), then it clearly tells us that the request
is too long.
didn't find how to log it as a bug, didn't have permissions in Create Case area
(I'm currently using an evaluation copy to test whether weblogic is the right
way to go).
thank you in advance for any advice (patch, workaround...). Using temp tables
instead of
in may work, but needs quite a rewrite of the part of the framework we are developing
which
deals with sql generation, and not sure of the comportment of informix if many
threads
concurrently create/delete table in temp space.
sincerely yours
Emmanuel Ligne
I generated a simple reproducer for this.
I will enter a bug report on it.
This seems to happen for all of the new type 4 drivers except for SQL
Server.
"Emmanuel Ligné" <[email protected]> wrote in message
news:4003d39b$[email protected]..
>
Actually the method parseAlmostAnything throws a StackOverflow exception
when a sql statement containing many ? is given.
For example, using the weblogic 8.1SP2 informix driver, the following SQLrequest
generates a StackOverflow :
select snwcservic0_.X1624_0_cmMo as x0_0_, snwcservic0_.X1624_1_cmMo asx0_1_,
snwcservic0_.X1607_17_argOs as x1_0_, snwcservic0_.X1607_18_argLayer asx1_1_,
snwcservic0_.X1607_19_argClass as x1_2_, snwcservic0_.X1607_20_sistentIdas x1_3_
from snwcservicevers snwcservic0_ where (snwcservic0_.X1624_1_cmMo in(? ,? ,
.. (there are exactly
3386 ? in the request) ...))
There are exacly 3386 ? in this request. The IBM informix driver correctlyhandles
this request,
as long as there are fewer than 16000 or so ? in the request (think it's aSQL-I
message length
limitation of 64 K or something like), then it clearly tells us that therequest
is too long.
didn't find how to log it as a bug, didn't have permissions in Create Casearea
>
(I'm currently using an evaluation copy to test whether weblogic is theright
way to go).
thank you in advance for any advice (patch, workaround...). Using temptables
instead of
in may work, but needs quite a rewrite of the part of the framework we aredeveloping
which
deals with sql generation, and not sure of the comportment of informix ifmany
threads
concurrently create/delete table in temp space.
sincerely yours
Emmanuel Ligne
Similar Messages
-
StackOverflow in weblogic.jdbc.base.BaseSqlParser#parseAlmostAnything
I have some sql which looks like 'select a, b, c from d where c in (
val1, val2, val3, ...., valn )' where n is 2400. The string itself is
18986 characters long. When I attempt to execute this string, I get the
exception below.
This is with WLS81SP2 and the WebLogic Informix drivers shipped with
WLS81SP2.
Any advice? I am pursing an alternative of using a temporary table, but
thought I'd touch base with the group for your thoughts.
Caused by: javax.ejb.TransactionRolledbackLocalException: EJB Exception:
; nested exception is: javax.ejb.TransactionRolledbackLocalException:
EJB Exception: : java.lang.StackOverflowError
at java.lang.StringBuffer.length(StringBuffer.java:141)
at java.lang.String.<init>(String.java:422)
at java.lang.StringBuffer.toString(StringBuffer.java:1235)
at weblogic.jdbc.base.BaseSQLScanner.setEndOfToken(Unknown Source)
at
weblogic.jdbc.base.BaseSQLScanner$BaseSQLScannerIDOrKeywordState.processChar(Unknown
Source)
at weblogic.jdbc.base.BaseSQLScanner.getNextToken(Unknown Source)
at weblogic.jdbc.base.BaseSQLParser.matchWhiteSpaceOrComment(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchWhiteSpaceOrComment(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchSpecialCharTerminal(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchCommaTerminal(Unknown Source)
at weblogic.jdbc.base.BaseSQLParser.parseAlmostAnything(Unknown Source)
[ repeat above lines 1013 times ]
at
weblogic.ejb20.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:248)
at
weblogic.ejb20.internal.BaseEJBLocalHome.handleSystemException(BaseEJBLocalHome.java:247)
at
weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:327)
at
org.ecmc.nib.model.jdbc.SelectFacade_nrlw90_ELOImpl.localQueryScheduledSteps(SelectFacade_nrlw90_ELOImpl.java:830)
at
org.ecmc.nib.model.AdminFacadeBean.lookupScheduledSteps(AdminFacadeBean.java:508)
at
org.ecmc.nib.model.AdminFacade_17g2j4_EOImpl.lookupScheduledSteps(AdminFacade_17g2j4_EOImpl.java:100)
at org.ecmc.nib.model.AdminFacade_17g2j4_EOImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)Jay Schmidgall wrote:
I have some sql which looks like 'select a, b, c from d where c in (
val1, val2, val3, ...., valn )' where n is 2400. The string itself is
18986 characters long. When I attempt to execute this string, I get the
exception below.
This is with WLS81SP2 and the WebLogic Informix drivers shipped with
WLS81SP2.
Any advice? I am pursing an alternative of using a temporary table, but
thought I'd touch base with the group for your thoughts.
Caused by: javax.ejb.TransactionRolledbackLocalException: EJB Exception:
; nested exception is: javax.ejb.TransactionRolledbackLocalException:
EJB Exception: : java.lang.StackOverflowErrorHi. Yes, I believe this is a known-and-fixed bug. Contact BEA support
for the latest driver package for the weblogic drivers. You need to get
the whole package.
Joe
at java.lang.StringBuffer.length(StringBuffer.java:141)
at java.lang.String.<init>(String.java:422)
at java.lang.StringBuffer.toString(StringBuffer.java:1235)
at weblogic.jdbc.base.BaseSQLScanner.setEndOfToken(Unknown Source)
at
weblogic.jdbc.base.BaseSQLScanner$BaseSQLScannerIDOrKeywordState.processChar(Unknown
Source)
at weblogic.jdbc.base.BaseSQLScanner.getNextToken(Unknown Source)
at weblogic.jdbc.base.BaseSQLParser.matchWhiteSpaceOrComment(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchWhiteSpaceOrComment(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchSpecialCharTerminal(Unknown
Source)
at weblogic.jdbc.base.BaseSQLParser.matchCommaTerminal(Unknown Source)
at weblogic.jdbc.base.BaseSQLParser.parseAlmostAnything(Unknown Source)
[ repeat above lines 1013 times ]
at
weblogic.ejb20.internal.EJBRuntimeUtils.throwTransactionRolledbackLocal(EJBRuntimeUtils.java:248)
at
weblogic.ejb20.internal.BaseEJBLocalHome.handleSystemException(BaseEJBLocalHome.java:247)
at
weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:327)
at
org.ecmc.nib.model.jdbc.SelectFacade_nrlw90_ELOImpl.localQueryScheduledSteps(SelectFacade_nrlw90_ELOImpl.java:830)
at
org.ecmc.nib.model.AdminFacadeBean.lookupScheduledSteps(AdminFacadeBean.java:508)
at
org.ecmc.nib.model.AdminFacade_17g2j4_EOImpl.lookupScheduledSteps(AdminFacade_17g2j4_EOImpl.java:100)
at
org.ecmc.nib.model.AdminFacade_17g2j4_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170) -
How can i use the weblogic jdbc driver for sqlserver?
hello
i have downloaded and installed the weblogic on my windows2000 server,then i want to use the weblogic jdbc driver for sqlserver2000 outside of the weblogic,as follow:
1 add following string to my classpath environment of the wndows2000: E:\bea\wlserver6.1\lib\mssqlserver4v65.jar
2 then i write a test program as:
import weblogic.jdbc.mssqlserver4.Driver;
import java.sql.*;
public class test{
public static void main(String argv[]){
try{ Class.forName("weblogic.jdbc.mssqlserver4.Driver");
Connection
conn=DriverManager.getConnection"jdbc:weblogic:mssqlserver4:localhost:1433","sa",""); }catch(Exception e){ System.out.println(e.getMessage()); }
4 when i execute it,it throw a exception:
Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/version at weblogic.jdbc.mssqlserver4.TdsStatement.getLicenseStr(TdsStatement.java:2665) at weblogic.jdbc.mssqlserver4.TdsStatement.microsoftLogin(TdsStatement.java:2474) at weblogic.jdbc.mssqlserver4.MicrosoftConnection.beginLogin(MicrosoftConnection.java:42) at weblogic.jdbc.mssqlserver4.TdsConnection.login(TdsConnection.java:57) at weblogic.jdbc.mssqlserver4.MicrosoftConnection.login(MicrosoftConnection.java:53) at weblogic.jdbc.mssqlserver4.BaseConnection.prepareConnection(BaseConnection.java:187) at weblogic.jdbc.mssqlserver4.Driver.newConnection(Driver.java:34) at weblogic.jdbc.mssqlserver4.ConnectDriver.connect(ConnectDriver.java:151) at java.sql.DriverManager.getConnection(DriverManager.java:517) at java.sql.DriverManager.getConnection(DriverManager.java:177) at test.main(test.java:7)
who can help me?thank you!Hi,
Mail me the jar file as I am using Weblogic 6.1 to my email id [email protected]
Else tell me the site from where u have downloaded and i will do the same.
I will test the same and let you know.
Thanks,
Seetesh -
OIM 9.1.0.2 - Weblogic JDBC Multi Data Sources for Oracle RAC
Does OIM OIM 9.1.0.2 BP07 support Weblogic JDBC Multi Data Sources (Services>JDBC>Multi Data Sources) for Oracle RAC instead of inserting the "Oracle RAC JDBC URL" on JDBC Data Sources for xlDS and xlXADS (Services>JDBC>Data Sources> xlDS|xlXADS > Connection Poll> URL) ?
If yes, is there are any other modifications that need to be made on OIM, or just changing the data sources?Yes, it's supported. You install against one instance directly of the Rac Server. Then you update the config.xml file and the jdbc resource in your weblogic server with the full rac address. It is documented for installation against RAC. http://docs.oracle.com/cd/E14049_01/doc.9101/e14047/database.htm#insertedID2
-Kevin -
Hi All,
I am getting below build error. I am migrating weblogic 10. Which jar file contains this interface: weblogic.jdbc.vendor.oracle.OracleThinClob?
Error:
package weblogic.jdbc.vendor.oracle does not exist [javac] if (theClob instanceof weblogic.jdbc.vendor.oracle.OracleThinClob)
I already got weblogic.jar file from weblogic 10.
Thanks,
SrinivasSrinivas U wrote:
Hi All,
I am getting below build error. I am migrating weblogic 10. Which jar file contains this interface: weblogic.jdbc.vendor.oracle.OracleThinClob?
Error:
package weblogic.jdbc.vendor.oracle does not exist [javac] if (theClob instanceof weblogic.jdbc.vendor.oracle.OracleThinClob)
I already got weblogic.jar file from weblogic 10.
Thanks,
SrinivasIt's in the datasource module/jar: modules/com.bea.core.datasource_1.0.0.0.jar -
Hello,
we are running WLS 6.1 SP2. The following code sometimes (rather rarely) throws
a NullPointerException:
Connection dbConnection = DBUtil.getDBConnection();//here we get the Connection
stmt = dbConnection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);//it's
where NPE happens
The error report says:
java.sql.SQLException:
java.lang.NullPointerException at
weblogic.jdbc.rmi.SerialConnection.createStatement(SerialConnection.java:396)
So, I think, this is something in WebLogic's code... Is this a known issue (I
couldn't find a similar report in the newsgroup)? Is there a workaround?
regards,
VitalyVitaly Sourikov wrote:
"Vitaly Sourikov" <[email protected]> wrote:
The patches that we use with SP2 are
CR061106_61sp2.jar
CR072612_61sp2.jar
CR077919_61sp2.jar
As far as we know, those fixes (or some of them) were not introduced in SP4. Are
there new versions of the patches for SP4?I have found that all these bugs are fixed in sp4, so no patches are needed if you
upgrade to 6.1sp4.
Joe
>
>
regards,
Vitaly
Hi Joseph,
Thank you for the reply. Unfortunately, we cannot move to SP3 or SP4
- they have
conflicts with other patches from WebLogic we use. This error happens
rather rarely.
In most of cases this very stuff works. But it would be intresing to
have this
patch for diagnostics, in case of future failures. Would you send it
to me, please?
Thank you in advance,
Vitaly
Joseph Weinstein <[email protected]> wrote:
Vitaly Sourikov wrote:
Hello,
we are running WLS 6.1 SP2. The following code sometimes (rather rarely)throws
a NullPointerException:
Connection dbConnection = DBUtil.getDBConnection();//here we get theConnection
stmt = dbConnection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);//it's
where NPE happens
The error report says:
java.sql.SQLException:
java.lang.NullPointerException at
weblogic.jdbc.rmi.SerialConnection.createStatement(SerialConnection.java:396)
So, I think, this is something in WebLogic's code... Is this a knownissue (I
couldn't find a similar report in the newsgroup)? Is there a workaround?Hi. The NPE is probably happening in the actual DBMS driver. What is
happening
is that the rmi driver is having to catch any non-SQLException, andthrow
a SQLException
with the message of the original exception. Unfortunately, the fullstacktrace
of the
original NPE is lost. If you want, I can send you a small diagnostic
patch, which will
just make the rmi object retain the whole original stacktrace in the
exception it throws,
and that will help lead to the real problem.
This may well be a bug that was fixed in sp3 or 4. Is it possible
for you to upgrade to
the latest stuff?
Joe
regards,
Vitaly -
ClassCastException: weblogic.jdbc.rmi.SerialResultSet
HI,
I am using WebLogic 6.0 SP2 connection pooling to get CLOB data from Oracle database.
It is working fine to get the connection and get non-CLOB data like string, but
when I retrieve the CLOB column in my program such as, theClob = ((oracle.jdbc.OracleResultSet)
rs).getCLOB(1),
Weblogic throws ClassCastException: weblogic.jdbc.rmi.SerialResultSet, does anybody
experience the same problem ? How can I get around this problem ?
Thanks
JohnHi,
I've got the same error. The only diference is that I read BLOBs out of the table
((oracle.jdbc.OracleResultSet)rset).getBLOB(1) from oracle.jdbc.OracleResultSet).
Best regards,
Kai
"John Chen" <[email protected]> wrote:
>
HI,
I am using WebLogic 6.0 SP2 connection pooling to get CLOB data from
Oracle database.
It is working fine to get the connection and get non-CLOB data like string,
but
when I retrieve the CLOB column in my program such as, theClob = ((oracle.jdbc.OracleResultSet)
rs).getCLOB(1),
Weblogic throws ClassCastException: weblogic.jdbc.rmi.SerialResultSet,
does anybody
experience the same problem ? How can I get around this problem ?
Thanks
John -
Major performance problem in weblogic jdbc
I ran a test which selected ~1000 rows from an oracle database table. The
code ran in 4 seconds when I used the Oracle driver directly:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection(URL, "XXX", "XXX");
When I changed the code to get the connection from weblogic, it took 128
SECONDS!!!!
weblogic.jdbc.connectionPool.pointclick=\
url=jdbc:oracle:thin:@XXX:dev,\
driver=oracle.jdbc.driver.OracleDriver,\
initialCapacity=1,\
maxCapacity=2,\
capacityIncrement=1,\
props=user=XXX;password=XXX
weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.pointclick=pointclick
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
Context context = new InitialContext(properties);
try
DataSource dataSource = (DataSource)context.lookup(NAME);
Connection connection = dataSource.getConnection();
// if(!autoCommit)
// connection.setAutoCommit(false);
return connection;
finally
context.close();
The strangest thing is that when I used the weblogic pool, if I executed
"select column from table" it took 128 seconds, but "select * from table"
only took 32 seconds. Why would it take longer to process less data?
And more importantly, why does the weblogic connection take so damn long?
Thanks for your help.
Sean RoheadHey, I finally managed to get JDBC logging up and running! Had to do with
permission setting, adding the following entry to weblogic.policy:
permission java.sql.SQLPermission "setLog";
Boy are you right; JDBC logging is slow as mud! Good thing we use BMP
entity beans, so I guess I can log JDBC calls myself in the
ejbCreate/Load/Store/Remove hooks!
Gene Chuang
Teach the world. Join Kiko!
http://www.kiko.com/profile/join.jsp?refcode=TAF-gchuang
"Joseph Weinstein" <[email protected]> wrote in message
news:[email protected]...
>
>
Gene Chuang wrote:
Hey, I've tried setting weblogic.jdbc.enableLogFile=true before and
can't
even get the server to start up! Since JDBC logging is not only slow,but
buggy,JDBC logging is slow for the reasons described, but not buggy as such.
is there a possibility Weblogic can implement a JDBC log for a future
release?
Seems like Weblogic can catch SQL calls much easier than we can,
especially for CMP!It is conceivable that our pool drivers (pool,jts,rmi etc) couldindependently
log SQL for debugging purposes, but we need to retain the semantics ofturning
on jdbc logging, which in any case will continue to emanate from any JDBCdriver.
In any case, we wouldn't do anything differently that DriverManager doesfor
simply writing to a file, which would be serialized by the stream anyway.
Joe
Gene Chuang
Teach the world. Join Kiko!
http://www.kiko.com/profile/join.jsp?refcode=TAF-gchuang
"Joseph Weinstein" <[email protected]> wrote in message
news:[email protected]...
Sean Rohead wrote:
OK, disregard everything I said in my last post. The REAL reason
for
the
slowdown is that I had "weblogic.jdbc.enableLogFile=true" in my
weblogic.properties. So, there is nothing wrong with the JNDIDataSource
object. Sorry if I misled anyone.
Still, it does seem rather excessive for logging to cause a 30Xslowdown.
Someone at BEA ought to take a closer look at that...Known issue, not ours.
JDBC logging collect anything logged by any JDBC driver or by anySQLException.
These all call DriverManager.println() which is class synchronized in
the
JVM,
so this will serialize most JDBC threads, and slow the server down a
lot,
independently of the disk I/O needed to grow the file.
Joe
Sean Rohead
"Sean Rohead" <[email protected]> wrote in message
news:[email protected]...
Nice work, Charlie!
When I just connected to the pool directly, it ran fine. I am
guessing
that
the DataSource returns a connection that connects first to the
server
via
RMI and then to the database. I am trying to obtain a JDBC
connection
for
use in EJB and servlets, so this is clearly overkill. The
question I
now
have is what is the best way to obtain a transactional
connection
without
the overhead described above? Can I somehow create a
transactional
DataSource that doesn't go over RMI? Or, should I just use thejts
driver
directly? I tried the following code, but got an error:
Driver driver = new weblogic.jdbc.jts.Driver();
Properties properties = new Properties();
properties.put("connectionPoolID", "pointclick");
Connection connection = driver.connect("jdbc:weblogic:jts",properties);
The error was:
java.sql.SQLException: The url cannot be null
atjava.sql.DriverManager.getConnection(DriverManager.java:434)
atjava.sql.DriverManager.getConnection(DriverManager.java:106)
at weblogic.jdbcbase.jts.Driver.connect(Driver.java:213)
at
pointclick.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:24)
atpointclick.servlet.TestServlet.doGet(TestServlet.java:36)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:740)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:124)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:744)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImp
l.java:692)
at
weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContext
Manager.java:251)
at
weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:363)
at
weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:263)
atweblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>>>>>
>>>>>
I copied the code above from
http://www.weblogic.com/docs51/classdocs/jts_driver.html and there
was
no
mention of setting any other properties. If I create the
connection
this
way from an EJB, will it still participate in the transaction
started
by
the
EJB container?
Sean Rohead
"Charlie Crook" <[email protected]> wrote in message
news:[email protected]...
Your Oracle example is also using JNDI to obtain the connection;
not
just
getting a connection from a pool. So you've actually changed 2conditions
( non-pool to pool, non-JNDI to JNDI ). So both of these should
be
considered as suspects for the performance.
"Sean Rohead" <[email protected]> wrote in message
news:[email protected]...
I ran a test which selected ~1000 rows from an oracle database
table.
The
code ran in 4 seconds when I used the Oracle driver directly:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = DriverManager.getConnection(URL,
"XXX",
"XXX");
When I changed the code to get the connection from weblogic,
it
took
128
SECONDS!!!!
weblogic.jdbc.connectionPool.pointclick=\
url=jdbc:oracle:thin:@XXX:dev,\
driver=oracle.jdbc.driver.OracleDriver,\
initialCapacity=1,\
maxCapacity=2,\
capacityIncrement=1,\
props=user=XXX;password=XXX
weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.pointclick=pointclick
>>>>>>>
>>>>>>>
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
Context context = new InitialContext(properties);
try
DataSource dataSource = (DataSource)context.lookup(NAME);
Connection connection = dataSource.getConnection();
// if(!autoCommit)
// connection.setAutoCommit(false);
return connection;
finally
context.close();
The strangest thing is that when I used the weblogic pool, ifI
executed
"select column from table" it took 128 seconds, but "select *
from
table"
only took 32 seconds. Why would it take longer to process
less
data?
And more importantly, why does the weblogic connection take sodamn
long?
Thanks for your help.
Sean Rohead
PS: Folks: BEA WebLogic is in S.F., and now has some entry-level
positions
for
people who want to work with Java and E-Commerce infrastructure
products.
Send
resumes to [email protected]
The Weblogic Application Server from BEA
JavaWorld Editor's Choice Award: Best Web Application Server
Java Developer's Journal Editor's Choice Award: Best Web ApplicationServer
Crossroads A-List Award: Rapid Application Development Tools for
Java
Intelligent Enterprise RealWare: Best Application Using a ComponentArchitecture
http://www.bea.com/press/awards_weblogic.html
PS: Folks: BEA WebLogic is in S.F., and now has some entry-level positionsfor
people who want to work with Java and E-Commerce infrastructure products.Send
resumes to [email protected]
The Weblogic Application Server from BEA
JavaWorld Editor's Choice Award: Best Web Application Server
Java Developer's Journal Editor's Choice Award: Best Web ApplicationServer
Crossroads A-List Award: Rapid Application Development Tools for Java
Intelligent Enterprise RealWare: Best Application Using a ComponentArchitecture
http://www.bea.com/press/awards_weblogic.html -
Many procs results in: weblogic.jdbc.extensions.PoolDisabledSQLException
We have an issue whenever we submit say 100 or more processes at the same time to be started.
The first processes all start and work fine.
But at some point things go wrong.
In the log directory under our SOA project, we find these error messages:
Fault ID service:90091
Fault Time 26-Apr-2011 09:06:20
Non Recoverable System Fault :
Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.4.0) (Build 101210)): oracle.toplink.exceptions.DatabaseException Internal >Exception:
weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException: Pool SOALocalTxDataSource is >Suspended, cannot allocate resources to applications..
Error Code: 0Followed a bit later by this:
Fault ID service:90101
Fault Time 26-Apr-2011 09:06:58
Non Recoverable System Fault :
Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.4.0) (Build 101210)): oracle.toplink.exceptions.DatabaseException >Internal Exception:
weblogic.jdbc.extensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadException: >0:weblogic.common.ResourceException: Could not create pool connection.
The DBMS driver exception was: IO-fout: Socket read timed out Error Code: 0 Call:
SQLCall(INSERT INTO COMPOSITE_INSTANCE (ID, COMPOSITE_DN, CONVERSATION_ID, UPDATED_BY, PARENT_ID, CREATED_TIME, TAGS, ECID, INDEX6, TEST_RUN_NAME, INDEX4, TEST_RUN_ID, INDEX2, TEST_SUITE, BUSINESS_STATUS, TEST_CASE, BATCH_ID, SOURCE_NAME, UPDATED_TIME, SOURCE_TYPE, TITLE, SOURCE_ACTION_TYPE, INDEX3, SOURCE_ACTION_NAME, BATCH_INDEX, STATE, CREATED_BY, LIVE_INSTANCES, INDEX1, STATE_COUNT, INDEX5, VERSION, HAS_ASSOC, PARTITION_DATE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?))
Query: InsertObjectQuery([email protected]12d437)We have a feeling that we need to throttle the creation of these processes.
Appreciate any ideas we might try to fix this issue.We have set the 'maximum capacity' of that data source to 500.
When we submit 100 BPEL instances to be started, we see (by monitoring v$session inside the database) that the number of sessions opened by BPEL never goes beyond a few (5 to 10) database sessions.
Yet we still encounter this 'pool is suspended' error:
weblogic.jdbc.extensions.PoolDisabledSQLException: weblogic.common.resourcepool.ResourceDisabledException:
Pool SOALocalTxDataSource is uspended, cannot allocate resources to applications..We can then reset the status of this pool back to running. It then runs for a while, but after 5 - 10 minutes the status flips back to 'suspended' again.
In search of some kind of workaround, we have also set (in composite.xml) the minimumDelayBetweenMessages to 2 seconds, just to ensure that we throttle the creation of our BPEL processes:
<service name="ReceiveFlowEvent" ui:wsdlLocation="ReceiveFlowEvent.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/aq/PASSOA/WorkflowDispatcher/ReceiveFlowEvent#wsdl.interface(Dequeue_ptt)"/>
<binding.jca config="ReceiveFlowEvent_aq.jca">
<property name="jca.retry.count">3</property>
<property name="jca.retry.interval">5</property>
<!--property name="jca.retry.interval">20</property-->
<!--property name="jca.retry.backoff">2</property-->
<property name="minimumDelayBetweenMessages">2000</property>
<property name="adapter.aq.dequeue.threads">1</property>
</binding.jca>
</service>
...Any more clues are appreciated.
Edited by: Toon Koppelaars on May 9, 2011 4:45 PM -
Hello. I'm trying to bring back a BLOB object from a PL/SQL procedure. I keep getting a class cast exception when I do it
java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB
I get similar results with oracle.sql.BLOB or java.sql.Blob.
What I've noticed is that when I'm not using a JDBC URL with my AM to do the SQL it does not fail. It's when I change to a JDBC Datasource I get the class cast exception. Any ideas?
Thanks, Graeme.In the connection pool uncheck the property "Wrap Data Types".
By default, data type objects for Array, Blob, Clob, NClob, Ref, SQLXML, and Struct, plus ParameterMetaData and ResultSetMetaData objects are wrapped with a WebLogic wrapper. This allows for features like debugging and connection usage to be done by the server.
The wrapping can be turned off by setting this value to false. This improves performance, in some cases significantly, and allows for the application to use the native driver objects directly. -
Weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB ERROR
Hi,
we have an application developed with Oracle ADF with several CRUD screens. We deploy it on Weblogic and use as database oracle10G 10.2.0.4.
On one specific screen, a delete button fails and gives following error:
ERROR: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB
Anybody who encountered a similiar problem and did you find a solution?
Cheers,
RobbyHi. The issue is that some oracle-specific BLOB JDBC code (which
requires casting to concrete Oracle classes) is conflicting with
WebLogic's prudent and correct behavior of wrapping every
java.sql object delivered from it's WLS datasources. If you are
able to alter the relevant JDBC code, I can describe what you
can do.
Joe -
Which jar is weblogic.jdbc.sqlserver.SQLServerDriver located?
Hi,
I am just writing a test program in Eclipse and tried to connect to MS SQL Server. I added weblogic.jar to project lib. But it complaints ClassNotFound: weblogic.jdbc.sqlserver.SQLServerDriver. where is it?
Found out I have to have wlbase.jar wlclient.jar wlutil.jar wlsqlserver.jar.
Edited by Holy at 01/29/2007 12:05 PMtest test wrote:
Hi,
I am just writing a test program in Eclipse and tried to connect to MS SQL Server. I added weblogic.jar to project lib. But it complaints ClassNotFound: weblogic.jdbc.sqlserver.SQLServerDriver. where is it?
Found out I have to have wlbase.jar wlclient.jar wlutil.jar wlsqlserver.jar.You need wlbase, wlutil, wlsqlserver, and weblogic jars.
Joe -
Java.lang.ClassNotFoundException: weblogic/jdbc/mssqlserver4/Driver
Hello,
I am moving my database from Sybase to SQL Server. I have a program that ran fine with JConnect driver (Sybase) on both unix and windows. But now when I try to use the weblogic driver to connect to SQL Server the program fails. I am 100% positive that the weblogic drive is in the classpath. Whether the weblogic drive is in the classpath or not I get the same error:
Unexpected error:java.lang.ClassNotFoundException: weblogic/jdbc/mssqlserver4/Driver
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:124)
at com.trilogy.tools.core.DBUtil.loadDriver(DBUtil.java:16)
at com.trilogy.loader.core.LoadInitUtil.<init>(Compiled Code)
at com.trilogy.loader.mass.MassInitUtil.<init>(MassInitUtil.java:15)
at com.trilogy.loader.mass.Loader2CLI.execute(Compiled Code)
at com.trilogy.tools.core.CLIBase.execute(CLIBase.java:45)
at com.trilogy.loader.mass.Loader2CLI.main(Loader2CLI.java:805)
java.lang.NullPointerException
at com.trilogy.loader.mass.Loader2CLI.execute(Compiled Code)
at com.trilogy.tools.core.CLIBase.execute(CLIBase.java:45)
at com.trilogy.loader.mass.Loader2CLI.main(Loader2CLI.java:805)
Pease help me fix this problem. I am not sure why the weblogic driver is not working. Thanks.The error message says it can't find a class named "weblogic.jdbc.mssqlserver4.Driver". That looks rather odd to me.
Are you sure that you defined the connection information correctly in the configuration file? -
Hi,
I have weblogic 10gr3 installed on my machine and when trying to connect to DB linked with managed server, it is throwing error as
Apr 5, 2012 5:13:33 PM IST> <Failure occurred in the execution of deployment request with ID '1333626211843' for task 'weblogic.deploy.configChangeTask.6'. Error is: 'weblogic.application.ModuleException: '
weblogic.application.ModuleException:
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:289)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
Truncated. see log file for complete stacktrace
weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: Io exception: NL Exception was generated
at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:253)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1109)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1033)
at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:214)
at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1051)
Truncated. see log file for complete stacktrace
I have set the classpath for weblogic and tried to ping the DB, but its has given me the exception as
Error encountered:
java.sql.SQLRecoverableException: Io exception: NL Exception was generated
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:458)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:490)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:202)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at utils.dbping.main(dbping.java:192)
Could anyone please help me. This is something urgent for me
Regards,
VamsiHi,
I have weblogic 10gr3 installed on my machine and when trying to connect to DB linked with managed server, it is throwing error as
Apr 5, 2012 5:13:33 PM IST> <Failure occurred in the execution of deployment request with ID '1333626211843' for task 'weblogic.deploy.configChangeTask.6'. Error is: 'weblogic.application.ModuleException: '
weblogic.application.ModuleException:
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:289)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
Truncated. see log file for complete stacktrace
weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: Io exception: NL Exception was generated
at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:253)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1109)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1033)
at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:214)
at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1051)
Truncated. see log file for complete stacktrace
I have set the classpath for weblogic and tried to ping the DB, but its has given me the exception as
Error encountered:
java.sql.SQLRecoverableException: Io exception: NL Exception was generated
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:458)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:490)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:202)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at utils.dbping.main(dbping.java:192)
Could anyone please help me. This is something urgent for me
Regards,
Vamsi -
Connection Pool using weblogic.jdbc.pool.Driver
I am trying to use connection pooling in my JSP data access classes (which
work fine without connection pooling) on weblogic 4.5.1. I tried using the
weblogic.jdbc.pool.Driver but it exits with the following exception:
java.lang.ClassNotFoundException: weblogic.jdbc.pool.Driver
The path c:\weblogic\classes which contains this driver is specified in the
weblogic.class.path . I can not include it in the java class path because
then weblogic server fails to start at all (with an error message). I would
appreciate any help !
Thanks,
UsamahHi. Please don't repost identical posts to different news groups. See a response
in the JDBC group. thanks, joe
Usamah Malik wrote:
I am trying to use connection pooling in my JSP data access classes (which
work fine without connection pooling) on weblogic 4.5.1. I tried using the
weblogic.jdbc.pool.Driver but it exits with the following exception:
java.lang.ClassNotFoundException: weblogic.jdbc.pool.Driver
The path c:\weblogic\classes which contains this driver is specified in the
weblogic.class.path . I can not include it in the java class path because
then weblogic server fails to start at all (with an error message). I would
appreciate any help !
Thanks,
Usamah--
PS: Hey folks, we're hiring Java engineers for our WebLogic
Engineering group in downtown S.F. Send me your resume.
The Weblogic Application Server from BEA
JavaWorld Editor's Choice Award: Best Web Application Server
Java Developer's Journal Editor's Choice Award: Best Web Application Server
Crossroads A-List Award: Rapid Application Development Tools for Java
Intelligent Enterprise RealWare: Best Application Using a Component Architecture
http://weblogic.beasys.com/press/awards/index.htm
Maybe you are looking for
-
RFC Connection Error during Web AS ABAP Database Instance
I keep getting RFC Connection error installing the database instance. The following are the pertinent logs: INFO 2007-05-09 20:10:04 Working directory changed to C:\Program Files\sapinst_instdir\NW04\SYSTEM\ABAP\MSS\UC\DB. INFO 2007-05-09 20:10:04 O
-
Indesign crashes every time I open an .INDD
I have been working on a document for about 4-5 months now. last week I came to open the document in InDesign and the programme crashed and told me that the file was now damaged beyond repair. I am using CS5 and have had a look at other forums about
-
I had to restore my computer and now it won't sync with my iPhone
I had to restore my computer to default and now I can't transfer items in my iTunes library to my phone. Is there anything besides 3rd party software that I can do to authorize this computer. I restored my phone and I could transfer songs, but then
-
How to create a web bulk upload in SAP BW
Hi there, does anyboady has an idea which is the best way to create a bulk upload via web interface where the user can select a csv file and upload data by himself? Thanks in advance. regards, ralph
-
Internal error in FORM/FUNCTION OUTSPLIT_SCLAE_UPDOWN in position 1 with RC
Hi All, when I try to do MFBF with reporting points I'm getting error "internal error in FORM/FUNCTION OUTSPLIT_SCLAE_UPDOWN in position 1 with RC4" can anybody give me some idea to how to comeout of this error. Thanks and Regards Ramana