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 Rohead
Hey, 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
Similar Messages
-
JDBC Problems -- NoClassDefFoundError: weblogic/jdbc/wrapper/JTSConnection
Ben Belchak wrote:
Hi, newsgroup:
I have been developing with the Workshop for about a month now, and everything has been going great until last week. I have been connected and able to retrieve data from our AS/400 using the jt400 drivers, but all of a sudden something happened that caused me to get the following error. If anybody can assist, it would be greatly appreciated.
Some background: I have the JDBC JAR inside the classpath for my server, and it is loading it properly because I can test the connection pool from within the appserver's admin console.
In appserver:
java.lang.NoClassDefFoundError: weblogic/jdbc/wrapper/JTSConnectionHi. Did you get a response for this?
Make sure you don't have the JDBC jar in the client classpath too. Just make
sure it's in the server classpath. Let me know if that helps.
Joe
at java.lang.ClassLoader.defineClass(Ljava.lang.String;[BIILjava.securit
y.ProtectionDomain;)Ljava.lang.Class;(Unknown Source)
at java.security.SecureClassLoader.defineClass(Ljava.lang.String;[BIILja
va.security.CodeSource;)Ljava.lang.Class;(SecureClassLoader.java:123)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(Ljava.l
ang.String;)Ljava.lang.Class;(GenericClassLoader.java:476)
at weblogic.utils.classloaders.GenericClassLoader.findClass(Ljava.lang.S
tring;)Ljava.lang.Class;(GenericClassLoader.java:181)
at java.lang.ClassLoader.loadClass(Ljava.lang.String;Z)Ljava.lang.Class;
(Unknown Source)
Inside browser:
An error has occurred:
EJB Exception: ; nested exception is:
weblogic.jws.control.ControlException: Exception in onAcquirecontext event handler[Context failure: onAcquire[Failed to Generate Wrapper Class.
Nested Exception: java.lang.RuntimeException: Failed to Generate Wrapper Class
at weblogic.utils.wrapper.WrapperFactory.createWrapper(Ljava.lang.Class;Ljava.lang.Object;Z)Ljava.lang.Object;(WrapperFactory.java:183)
at weblogic.jdbc.wrapper.JDBCWrapperFactory.getWrapper(ILjava.lang.Object;Z)Ljava.lang.Object;(JDBCWrapperFactory.java:171)
at weblogic.jdbc.jts.Driver.newConnection(Ljava.lang.String;Lweblogic.transaction.Transaction;Ljava.lang.String;)Lweblogic.jdbc.wrapper.JTSConnection;(Driver.java:737)
at weblogic.jdbc.jts.Driver.createLocalConnection(Lweblogic.transaction.Transaction;Ljava.lang.String;Ljava.util.Properties;)Lweblogic.jdbc.wrapper.JTSConnection;(Driver.java:197)
at weblogic.jdbc.jts.Driver.connect(Ljava.lang.String;Ljava.util.Properties;)Ljava.sql.Connection;(Driver.java:155)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection()Ljava.sql.Connection;(RmiDataSource.java:305)
at com.bea.wlw.runtime.core.control.DatabaseControlImpl.getConnection()Ljava.sql.Connection;(DatabaseControlImpl.jcs:1424)
at com.bea.wlw.runtime.core.control.DatabaseControlImpl.context_onAcquire()V(DatabaseControlImpl.jcs:1316)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang..Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(DispMethod.java:367)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Ljava.lang.Object;Ljava.lang.String;Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:423)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:396)
at com.bea.wlw.runtime.core.container.Invocable.fireEvent(Lcom.bea.wlw.runtime.core.context.WlwThreadContext;Ljava.lang.String;Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:612)
at com.bea.wlw.runtime.core.context.WlwThreadContext.sendEvent(Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(WlwThreadContext.java:980)
at com.bea.wlw.runtime.core.context.WlwThreadContext.raiseEvent()Ljava.lang.Object;(WlwThreadContext.java:910)
at com.bea.wlw.runtime.core.container.Container.raiseContextEvent()Ljava.lang.Object;(Container.java:567)
at com.bea.wlw.runtime.jcs.container.JcsContainer.onAcquire()V(JcsContainer.java:529)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(DispMethod.java:367)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Ljava.lang.Object;Ljava.lang.String;Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:423)
at com.bea.wlw.runtime.core.container.Invocable.sendContextEvent(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:533)
at com.bea.wlw.runtime.jcs.container.JcsContainer.sendContextEvent(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(JcsContainer.java:480)
at com.bea.wlw.runtime.jcx.container.JcxContainer.preInvoke(Lcom.bea.wlw.runtime.core.context.WlwThreadContext;Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.request.Request;(JcxContainer.java:110)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(Invocable.java:187)
at com.bea.wlw.runtime.jcs.container.JcsContainer.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(JcsContainer.java:84)
at com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(BaseContainerBean.java:198)
caused by: : weblogic.jws.control.ControlException: Exception in onAcquirecontext event handler[Context failure: onAcquire[Failed to Generate Wrapper Class.
Nested Exception: java.lang.RuntimeException: Failed to Generate Wrapper Class
at weblogic.utils.wrapper.WrapperFactory.createWrapper(Ljava.lang.Class;Ljava.lang.Object;Z)Ljava.lang.Object;(WrapperFactory.java:183)
at weblogic.jdbc.wrapper.JDBCWrapperFactory.getWrapper(ILjava.lang.Object;Z)Ljava.lang.Object;(JDBCWrapperFactory.java:171)
at weblogic.jdbc.jts.Driver.newConnection(Ljava.lang.String;Lweblogic.transaction.Transaction;Ljava.lang.String;)Lweblogic.jdbc.wrapper.JTSConnection;(Driver.java:737)
at weblogic.jdbc.jts.Driver.createLocalConnection(Lweblogic.transaction.Transaction;Ljava.lang.String;Ljava.util.Properties;)Lweblogic.jdbc.wrapper.JTSConnection;(Driver.java:197)
at weblogic.jdbc.jts.Driver.connect(Ljava.lang.String;Ljava.util.Properties;)Ljava.sql.Connection;(Driver.java:155)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection()Ljava.sql.Connection;(RmiDataSource.java:305)
at com.bea.wlw.runtime.core.control.DatabaseControlImpl.getConnection()Ljava.sql.Connection;(DatabaseControlImpl.jcs:1424)
at com.bea.wlw.runtime.core.control.DatabaseControlImpl.context_onAcquire()V(DatabaseControlImpl.jcs:1316)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(DispMethod.java:367)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Ljava.lang.Object;Ljava.lang.String;Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:423)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:396)
at com.bea.wlw.runtime.core.container.Invocable.fireEvent(Lcom.bea.wlw.runtime.core.context.WlwThreadContext;Ljava.lang.String;Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:612)
at com.bea.wlw.runtime.core.context.WlwThreadContext.sendEvent(Ljava.lang.reflect.Method;[Ljava.lang.Object;)Ljava.lang.Object;(WlwThreadContext.java:980)
at com.bea.wlw.runtime.core.context.WlwThreadContext.raiseEvent()Ljava.lang.Object;(WlwThreadContext.java:910)
at com.bea.wlw.runtime.core.container.Container.raiseContextEvent()Ljava.lang.Object;(Container.java:567)
at com.bea.wlw.runtime.jcs.container.JcsContainer.onAcquire()V(JcsContainer.java:529)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(DispMethod.java:367)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Ljava.lang.Object;Ljava.lang.String;Lcom.bea.wlw.runtime.core.dispatcher.DispMethod;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:423)
at com.bea.wlw.runtime.core.container.Invocable.sendContextEvent(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(Invocable.java:533)
at com.bea.wlw.runtime.jcs.container.JcsContainer.sendContextEvent(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(JcsContainer.java:480)
at com.bea.wlw.runtime.jcx.container.JcxContainer.preInvoke(Lcom.bea.wlw.runtime.core.context.WlwThreadContext;Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.request.Request;(JcxContainer.java:110)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(Invocable.java:187)
at com.bea.wlw.runtime.jcs.container.JcsContainer.invoke(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(JcsContainer.java:84)
at com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(Lcom.bea.wlw.runtime.core.request.Request;)Lcom.bea.wlw.runtime.core.dispatcher.InvokeResult;(BaseContainerBean.java:198)
Message was edited by bbelchak at Aug 9, 2004 1:16 PM
Message was edited by bbelchak at Aug 9, 2004 1:20 PM
Message was edited by bbelchak at Aug 9, 2004 1:50 PM -
Is anyone else having major performance problems with FMLE since the upgrade to Mavericks
OSX Mavericks seems to be having problems with streaming uploads in general, but in particular, I can not stream videos with FMLE at all. I tried it with my accounts at Ustream and Justin and they have the exact same results, with the stream pausing and going black after just a couple minutes. It doesn't seem to matter what my output settings are; this will happen even if it's set for extremely low bandwidth.
This did not happen when I was using Mountain Lion. I am almost certain the new OS is causing the issues, but I am not sure how or why, and am having trouble finding others with this problem.
Other programs I am using in conjunction with FMLE are CamTwist and SoundflowerI have problem streaming to twitch/justin.tv using Mavericks.
I've tried most of their FMS-servers without success. I get this loop:
Wed Oct 30 2013 01:53:58 : Primary - Re-establishing connection, attempt 1
Wed Oct 30 2013 01:53:59 : Primary - Reconnected to FMS/3,5,7,7009
Wed Oct 30 2013 01:54:04 : Primary - Network Status: NetConnection.Connect.Closed status
Wed Oct 30 2013 01:54:04 : Primary - Disconnected -
Hi,
This is similar - yet different - to a few of the old postings about performance
problems with using jdbc drivers against Sql Server 7 & 2000.
Here's the situation:
I am running a standalone java application on a Solaris box using BEA's jdbc driver
to connect to a Sql Server database on another network. The application retrieves
data from the database through joins on several tables for approximately 40,000
unique ids. It then processes all of this data and produces a file. We tuned
the app so that the execution time for a single run through the application was
24 minutes running against Sql Server 6.5 with BEA's jdbc driver. After performing
a DBMS conversion to upgrade it to Sql Server 2000 I switched the jDriver to the
Sql Server 2000 version. I ran the app and got an alarming execution time of
5hrs 32 min. After some research, I found the problem with unicode and nvarchar/varchar
and set the "useVarChars" property to "true" on the driver. The execution time
for a single run through the application is now 56 minutes.
56 minutes compared to 5 1/2 hrs is an amazing improvement. However, it is still
over twice the execution time that I was seeing against the 6.5 database. Theoretically,
I should be able to switch out my jdbc driver and the DBMS conversion should be
invisible to my application. That would also mean that I should be seeing the
same execution times with both versions of the DBMS. Has anybody else seen a
simlar situation? Are there any other settings or fixes that I can put into place
to get my performance back down to what I was seeing with 6.5? I would rather
not have to go through and perform another round of performance tuning after having
already done this when the app was originally built.
thanks,
mikeMike wrote:
Joe,
This was actually my next step. I replaced the BEA driver with
the MS driver and let it run through with out making any
configuration changes, just to see what happened. I got an
execution time of about 7 1/2 hrs (which was shocking). So,
(comparing apples to apples) while leaving the default unicode
property on, BEA ran faster than MS, 5 1/2 hrs to 7 1/2 hrs.
I then set the 'SendStringParametersAsUnicode' to 'false' on the
MS driver and ran another test. This time the application
executed in just over 24 minutes. The actual runtime was 24 min
16 sec, which is still ever so slightly above the actual runtime
against SS 6.5 which was 23 min 35 sec, but is twice as fast as the
56 minutes that BEA's driver was giving me.
I think that this is very interesting. I checked to make sure that
there were no outside factors that may have been influencing the
runtimes in either case, and there were none. Just to make sure,
I ran each driver again and got the same results. It sounds like
there are no known issues regarding this?
We have people looking into things on the DBMS side and I'm still
looking into things on my end, but so far none of us have found
anything. We'd like to continue using BEA's driver for the
support and the fact that we use Weblogic Server for all of our
online applications, but this new data might mean that I have to
switch drivers for this particular application.Thanks. No, there is no known issue, and if you put a packet sniffer
between the client and DBMS, you will probably not see any appreciable
difference in the content of the SQL sent be either driver. My suspicion is
that it involves the historical backward compatibility built in to the DBMS.
It must still handle several iterations of older applications, speaking obsolete
versions of the DBMS protocol, and expecting different DBMS behavior!
Our driver presents itself as a SQL7-level application, and may well be treated
differently than a newer one. This may include different query processing.
Because our driver is deprecated, it is unlikely that it will be changed in
future. We will certainly support you using the MS driver, and if you look
in the MS JDBC newsgroup, you'll see more answers from BEA folks than
from MS people!
Joe
>
>
Mike
The next test you should do, to isolate the issue, is to try another
JDBC driver.
MS provides a type-4 driver now, for free. If it is significantly faster,
it would be
interesting. However, it would still not isolate the problem, because
we still would
need to know what query plan is created by the DBMS, and why.
Joe Weinstein at BEA
PS: I can only tell you that our driver has not changed in it's semantic
function.
It essentially send SQL to the DBMS. It doesn't alter it. -
Performance problems with Leopard 10.5.1
Hello,
I use an iMac 24 Alu 2,8Ghz and upgraded to Leopard. There are some major performance problems and bugs in the recent version of Leopard:
1. While accessing USB devices, the display speed, windows moving, animations etc. slow down
2. Adobe CS3 Photoshop 10.01 and Flash CS3 are sometimes extremly slow. I tried the recent demo packages from Adobe:
2.1. The Photoshop dialogue "save for web" slows down the system completly, and this problem stays when quitting Photoshop. A restart is neccessary then.
2.2. Flash CS3 movie preview is very slow and stuttering. It's so slow you cannot imagine how the real movie flow will be.
2.3. Recent Flash Player 9,0,115,0 with hardware acceleration enabled doesn't really work with QuartzGL enabled Leopard: The movies slow down a lot. Try www.neave.tv for example.
3. Safari, Mail and other bundled software hang sometimes. You have to force quit them then. It doesn't matter whether QuartzGL is enabled or not. This especially happens to my system if it is online for some hours.
4. A lot of Apple applications doesn't seem to work with 2dextreme enabled. Why this? Apple supporters told me in Leopard there will be a much better 2dextreme support. Also Quartz2dExtreme in OSX 10.4 worked with all applications and i guess it's the same feature like "QuartzGL" in Leopard. So Leopard isn't finished here. It would be nice if Apple could make it's own software QuartzGL compatible.
5. Very often the desktop slows down or lags. This is the main reason I often still witch to Windows XP PC to do work in a faster, less annoying way.
6. Safari crashes randomly sometimes. It is unstable still. Also it crashes more often if you resize/move the window a lot, so I guess it is a graphics extension-related problem.
I hope you people from Apple will fix these annoying points and optimize your new system in the next update release.
Best regardsThanks for you answer. I repaired in the way as described above. There were some errors, some file index was wrong (don't remember exactly the phrase), now the DU reports the partition was successfully repaired / the volume appears to be ok.
The crashes in Safari are gone, but all other described problems still exist. Adobe CS3 is not really usable for me.
By the way, in iMacSoftwareUpdate 1.3, which was replaced by OSX 10.5.1 update, there is one extension called AppleVADriver.kext that does not exist in the OSX 10.5.1 update. Is it an important extension? -
RMAN duplicate target database from active database - performance problem
Hello. I’m running into a major performance problem when trying to duplicate a database from a target located inside our firewall to an auxiliary located outside our firewall. Both target and auxiliary are located in the same equipment room just on different subnets. Previously I had the auxiliary located on the same subnet as the target behind the firewall and duplicating a 4.5T database took 12 hours. Now with the auxiliary moved outside the firewall attempting to duplicate the same 4.5T database is estimated to exceed 35 hours. The target is a RAC instance using ASM and so is the auxiliary. Ping, tnsping, traceroutes to and from target and auxiliary all indicate no problem or latency. Any ideas on things to consider while hunting for this elusive performance decrease?
Thanks in advance.It would obviously appear network related. Have you captured any network/firewall metrics? Are all components set to full duplex? Would it be possible to take the firewall down temporarily and then test the throughput? Do you encounter any latency if you were to copy a large file across the subnets?
You may want to check V$RMAN_BACKUP_JOB_DETAILS, V$BACKUP_SYNC_IO or V$BACKUP_ASYNC_IO when the backup is running. -
Performance problem with Personalizations
Hi All,
We are doing iProcurement customizations on 11.5.10 instance. We are done with our personalization and extensions with iProc module. Majority of which are personalization and 8-9 are extension which requires hardly 2-3 lines of code changes. We deployed our all customizations but after that we are facing major performance problem. In Checkout page of iProc module after clicking Next button, it almost takes 7-8 minutes. In the same way on Submit and Review page, after submitting requisition it takes almost 8-9 minutes.
I checked the OAF personalization guide and it has mentioned that Personalization will not affect performance. And about Extension, we just replaced changed class files and one substituted VO and imported JPX file to 11.5.10 instance.
Can anyone please suggest any workaround or any more things to work on or any patch to apply or any setting to improve performance? That will be great help for us because we are really facing performance problem on high priority.
Thanks and Regards,
Suhas.Hi All,
We are doing iProcurement customizations on 11.5.10 instance. We are done with our personalization and extensions with iProc module. Majority of which are personalization and 8-9 are extension which requires hardly 2-3 lines of code changes. We deployed our all customizations but after that we are facing major performance problem. In Checkout page of iProc module after clicking Next button, it almost takes 7-8 minutes. In the same way on Submit and Review page, after submitting requisition it takes almost 8-9 minutes.
I checked the OAF personalization guide and it has mentioned that Personalization will not affect performance. And about Extension, we just replaced changed class files and one substituted VO and imported JPX file to 11.5.10 instance.
Can anyone please suggest any workaround or any more things to work on or any patch to apply or any setting to improve performance? That will be great help for us because we are really facing performance problem on high priority.
Thanks and Regards,
Suhas. -
Performance problem: 1.000 queries over a 1.000.000 rows table
Hi everybody!
I have a difficult performance problem: I use JDBC over an ORACLE database. I need to build a map using data from a table with around 1.000.000 rows. My query is very simple (see the code) and takes an average of 900 milliseconds, but I must perform around 1.000 queries with different parameters. The final result is that user must wait several minutes (plus the time needed to draw the map and send it to the client)
The code, very simplified, is the following:
String sSQLCreateView =
"CREATE VIEW " + sViewName + " AS " +
"SELECT RIGHT_ASCENSION, DECLINATION " +
"FROM T_EXO_TARGETS " +
"WHERE (RIGHT_ASCENSION BETWEEN " + dRaMin + " AND " + dRaMax + ") " +
"AND (DECLINATION BETWEEN " + dDecMin + " AND " + dDecMax + ")";
String sSQLSentence =
"SELECT COUNT(*) FROM " + sViewName +
" WHERE (RIGHT_ASCENSION BETWEEN ? AND ?) " +
"AND (DECLINATION BETWEEN ? AND ?)";
PreparedStatement pstmt = in_oDbConnection.prepareStatement(sSQLSentence);
for (int i = 0; i < 1000; i++)
pstmt.setDouble(1, a);
pstmt.setDouble(2, b);
pstmt.setDouble(3, c);
pstmt.setDouble(4, d);
ResultSet rset = pstmt.executeQuery();
X = rset.getInt(1);
I have yet created index with RIGHT_ASCENSION and DECLINATION fields (trying different combinations).
I have tried yet multi-threads, with very bad results
Has anybody a suggestion ?
Thank you very much!How many total rows are there likely to be in the View you create?
Perhaps just do a select instead of a view, and loop thru the resultset totalling the ranges in java instead of trying to have 1000 queries do the job. Something like:
int iMaxRanges = 1000;
int iCount[] = new int[iMaxRanges];
class Range implements Comparable
float fAMIN;
float fAMAX;
float fDMIN;
float fDMAX;
float fDelta;
public Range(float fASC_MIN, float fASC_MAX, float fDEC_MIN, float fDEC_MAX)
fAMIN = fASC_MIN;
fAMAX = fASC_MAX;
fDMIN = fDEC_MIN;
fDMAX = fDEC_MAX;
public int compareTo(Object range)
Range comp = (Range)range;
if (fAMIN < comp.fAMIN)
return -1;
if (fAMAX > comp.fAMAX)
return 1;
if (fDMIN < comp.fDMIN)
return -1;
if (fDMAX > comp.fDMAX)
return 1;
return 0;
List listRanges = new ArrayList(iMaxRanges);
listRanges.add(new Range(1.05, 1.10, 120.5, 121.5));
//...etc.
String sSQL =
"SELECT RIGHT_ASCENSION, DECLINATION FROM T_EXO_TARGETS " +
"WHERE (RIGHT_ASCENSION BETWEEN " + dRaMin + " AND " + dRaMax + ") " +
"AND (DECLINATION BETWEEN " + dDecMin + " AND " + dDecMax + ")";
Statement stmt = in_oDbConnection.createStatement();
ResultSet rset = stmt.executeQuery(sSQL);
while (rset.next())
float fASC = rset.getFloat("RIGHT_ASCENSION");
flaot fDEC = rset.getFloat("DECLINATION");
int iRange = Collections.binarySearch(listRanges, new Range(fASC, fASC, fDEC, fDEC));
if (iRange >= 0)
++iCount[iRange]; -
WLS6.1 SP4 weblogic JDBC driver problem
Hi,
We have a big Oracle table (more than 13000000 rows). The query cost by SP2 weblogic
driver is about 200 milli-second while SP4 cost is more than 200 seconds. Does
anyone know how to fix the problem? Our Orale is 9.2.0.1. The test program is
a simple java application running on Sun 5.8, JDK 1.3.1_02-b02.amyshuai wrote:
We are using the weblogic jdbc driver. The connection is from JDBCTxDataSource.
Problem can be solved by using oracle jdbc driver 9.0.1.4, but we are curious
why
the jdbc driver can impact the query performance so much?So all connections are coming through our pool, and you found a performance
regression in our Oracle driver between sp2 and sp4, which you work around
by using Oracle's own driver. Is that correct?
thanks,
Joe -
Performance problem in RFC to JDBC interface
Hello everybody!
i'm working whit SAP PI 7.1
We defined some interfaces RFC - PI - JDBC (SQL server) but we have some performance problem.
If we have many row to write on the table then interface finish in timeout :
Synchronous timeout exceeded.
Returning to application. Exception: com.sap.engine.interfaces.messaging.api.exception.MessageExpiredException: Message 1d1f00b0-fecf-11de-8738-0015600446f0(OUTBOUND) expired.
I read the PI tuning document and i tried to apply configuration whit Advanced Adapter Engine but whitout result.
Now we want change the timeout in visual admin and maybe we solve the error but i'm asking myself....:
It's normal that for write 1500 row in a table we need more than 4 minuts????
It's possible accelerate this process??? After go live we will write messages whit more than 50.000 row.
somebody may help me?
PS: please no link to tuning guide or to notes (to increase the timeout parameter).This could be because your Database system (JDBC server) is taking more time to insert. The problem is not on PI side but on the receiving system side. Try inserting the same number od rows on the database server itself and check for the time taken for execution. Adding indexes on your database table solves the issue lot of times.
Here PI is not the culprit but definitely the receiver system.
VJ -
JDBC performance problem with Blob
Hi,
I've some performance problem while inserting Blob in an Oracle
8i database. I'm using JVM 1.17 on HP-UX 11.0 with Oracle thin
client
The table I used contains only two columns : an integer (the
primary key) and a blob.
First I insert a row in the table with an empty_blob()
Then I select back this row to get the blob
and finally I fill in the blob with the data.
But it takes an average 4.5 seconds to insert a blob of 47 Kb.
Am I doing something wrong?
Any suggestion or hint will be welcome.
Thanks in advance
Didier
nullDon S. (guest) wrote:
: Didier Derck (guest) wrote:
: : Hi,
: : I've some performance problem while inserting Blob in an
Oracle
: : 8i database. I'm using JVM 1.17 on HP-UX 11.0 with Oracle
thin
: : client
: : The table I used contains only two columns : an integer (the
: : primary key) and a blob.
: : First I insert a row in the table with an empty_blob()
: : Then I select back this row to get the blob
: : and finally I fill in the blob with the data.
: : But it takes an average 4.5 seconds to insert a blob of 47
Kb.
: : Am I doing something wrong?
: : Any suggestion or hint will be welcome.
: : Thanks in advance
: : Didier
: In our testing if you use blob.putBytes() you will get better
: performance. The draw back we found was the 32k limit we ran
in
: to. We had to chunk things larger than that and make calls to
: the append method. I was dissappointed in Oracle's phone
support
: on what causes the 32k limit. In addition the getBytes() for
: retrieve doesn't seem to work. You'll have to use the
: InputStream for that. Oh, and FYI. We ran into a 2k limit on
: putChars() for CLOB's.
the thin drivers currently use the package "dbms_lob" behind the
scenes while the jdbc oci 815 drivers and higher uses the native
oci calls which makes them much faster.
there also is a 32k limit on pl/sql stored procedures/functions
for parms.
you may have run into that.
null -
Hi,
We have developed a e-commerce application using weblogic 4.5.1. We use
jdk1.2.2 and have installed service pack 7.
We use a progress database with a jdbc driver provided by Merant.
This jdbc driver doesn't support connection pooling so we get the connection
each time we need it.
We developed some servlets and jsp pages, also compiled using jdk1.2.2.
The problem we have is that there is one query that when we execute it,
results in a time out error after 3 minutes. The keepalivesecs are set to
more than 6000 secs. It is according to me not a problem of neither the
database nor the jdbc driver, since I tested the same code without using
weblogic and the servlet. Then the query performs fine. After 10 secs I get
the disered result.(run on a client machine).
I have looked at the performance tuning document but there is not much
information about how to handle this. Even if there is only 1 (one) user
connected performance is terrible.
Kind regards,
PatrickHi,
We have a similiar setup and also have performance problems.
We are using Weblogic 4.5.1 towards a Sybase database.
We are using JSP (pages) and it doesn't seem to be the actual
application that needs tuning(?). It more looks like it is some
weserver/application server setup somewhere.
The site is at http://www.awardit.se (it's in swedish though).
Any ideas/solutions?
Best Regards
Kenneth Ljunggren
"Patrick Vanbrabant" <[email protected]> skrev i meddelandet
news:8a8kmb$jso$[email protected]..
Hi,
We have developed a e-commerce application using weblogic 4.5.1. We use
jdk1.2.2 and have installed service pack 7.
We use a progress database with a jdbc driver provided by Merant.
This jdbc driver doesn't support connection pooling so we get theconnection
each time we need it.
We developed some servlets and jsp pages, also compiled using jdk1.2.2.
The problem we have is that there is one query that when we execute it,
results in a time out error after 3 minutes. The keepalivesecs are set to
more than 6000 secs. It is according to me not a problem of neither the
database nor the jdbc driver, since I tested the same code without using
weblogic and the servlet. Then the query performs fine. After 10 secs Iget
the disered result.(run on a client machine).
I have looked at the performance tuning document but there is not much
information about how to handle this. Even if there is only 1 (one) user
connected performance is terrible.
Kind regards,
Patrick -
Connection Pooling problem in Weblogic Server 6.1
Hi
We are using weblogic server 6.1 sp3. The server creates three database connection
pools (details available in the attached config.xml).
The database has a regular downtime every day for a few hours. We are running
the server as a windows service. As per the "RefreshMinutes" property, the server
should be able to get new fresh connections once the database comes up. But in
our case it is not doing so. Once the database comes up after its regular downtime:
-- Sometimes the server does not respond as in we are not able to open the console
page.
-- Any client that tries connecting to the database thru the server gets blocked
and does not respond.
-- The log file(weblogic.log) does not get updated after some time.
Can someone suggest why the server is showing such a behaviour??
Could it be anything related to the DBMS setting or to the local machine's settings
? Following is the thread dump after the server stops responding:
Full thread dump:
"ListenThread" prio=5 tid=0x14ffb570 nid=0x148c runnable [0x1685f000..0x1685fdbc]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:468)
at java.net.ServerSocket.implAccept(ServerSocket.java:243)
at java.net.ServerSocket.accept(ServerSocket.java:222)
at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:26)
at weblogic.t3.srvr.ListenThread.run(ListenThread.java:260)
"Thread-3" daemon prio=5 tid=0x14fb18b8 nid=0x12d4 waiting on monitor [0x167df000..0x167dfdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"Thread-2" daemon prio=5 tid=0x14f21c68 nid=0xf08 waiting on monitor [0x1679f000..0x1679fdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"Thread-1" daemon prio=5 tid=0x14fb97d8 nid=0xcac waiting on monitor [0x1675f000..0x1675fdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"ExecuteThread: '14' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e75a10
nid=0x13ec waiting on monitor [0x1671f000..0x1671fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '13' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e74e58
nid=0x1434 waiting on monitor [0x166df000..0x166dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '12' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e742a0
nid=0x1154 waiting on monitor [0x1669f000..0x1669fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '11' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e72ed0
nid=0xfe4 waiting on monitor [0x1665f000..0x1665fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '10' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e72318
nid=0x9a4 waiting on monitor [0x1661f000..0x1661fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '9' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e717d8 nid=0xf38
waiting on monitor [0x165df000..0x165dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '8' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e70c98 nid=0xf68
waiting on monitor [0x1659f000..0x1659fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '7' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e70158 nid=0x1008
waiting on monitor [0x1655f000..0x1655fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '6' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6f610 nid=0x1204
waiting on monitor [0x1651f000..0x1651fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '5' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6ead0 nid=0xef4
waiting on monitor [0x164df000..0x164dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '4' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6dfa8 nid=0x12bc
waiting on monitor [0x1649f000..0x1649fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '3' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6d5e8 nid=0xf70
waiting on monitor [0x1645f000..0x1645fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6ccb0 nid=0xf84
waiting on monitor [0x1641f000..0x1641fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e67510 nid=0x1418
waiting on monitor [0x163df000..0x163dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e64f60 nid=0x1228
waiting on monitor [0x1639f000..0x1639fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: 'weblogic.transaction.AsyncQueue'" daemon prio=5
tid=0x14e5c3f0 nid=0xf60 waiting on monitor [0x1635f000..0x1635fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: 'weblogic.transaction.AsyncQueue'" daemon prio=5
tid=0x14e5b908 nid=0xf78 waiting on monitor [0x1631f000..0x1631fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: 'weblogic.transaction.AsyncQueue'" daemon prio=5
tid=0x14e3ebe0 nid=0xfb4 waiting on monitor [0x162df000..0x162dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '9' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e35958
nid=0x9e8 waiting on monitor [0x1629f000..0x1629fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '8' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e3ba30
nid=0x5ac waiting on monitor [0x1625f000..0x1625fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '7' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e3af20
nid=0xdc4 waiting on monitor [0x1621f000..0x1621fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '6' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e3a410
nid=0x11ec waiting on monitor [0x161df000..0x161dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '5' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14bfdff0
nid=0x1078 waiting on monitor [0x1619f000..0x1619fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '4' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14bfd4e0
nid=0x43c waiting on monitor [0x1615f000..0x1615fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '3' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e32410
nid=0xb64 waiting on monitor [0x1611f000..0x1611fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14c4ee68
nid=0xe30 waiting on monitor [0x160df000..0x160dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14c4ec10
nid=0x1140 waiting on monitor [0x1609f000..0x1609fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '__weblogic_admin_rmi_queue'" daemon prio=5 tid=0x14e33b18
nid=0xfc0 waiting on monitor [0x1605f000..0x1605fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: '__weblogic_admin_html_queue'" daemon prio=5 tid=0x14e33968
nid=0x718 waiting on monitor [0x1601f000..0x1601fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '__weblogic_admin_html_queue'" daemon prio=5 tid=0x14e3c0a0
nid=0x119c waiting on monitor [0x15fdf000..0x15fdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"TimeEventGenerator" daemon prio=5 tid=0x14bfbce0 nid=0xb90 waiting on monitor
[0x15f9f000..0x15f9fdbc]
at java.lang.Object.wait(Native Method)
at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:279)
at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:138)
at java.lang.Thread.run(Thread.java:484)
"ExecuteThread: '1' for queue: '_weblogic_dgc_queue'" daemon prio=5 tid=0x14e39758
nid=0x11ac waiting on monitor [0x15f5f000..0x15f5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '_weblogic_dgc_queue'" daemon prio=5 tid=0x14e38898
nid=0x1194 waiting on monitor [0x15f1f000..0x15f1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"TimeEventGenerator" daemon prio=5 tid=0x14bfc040 nid=0x10a8 waiting on monitor
[0x15edf000..0x15edfdbc]
at java.lang.Object.wait(Native Method)
at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:279)
at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:138)
at java.lang.Thread.run(Thread.java:484)
"SpinnerRandomSource" daemon prio=5 tid=0x14e30c40 nid=0x794 waiting on monitor
[0x15e9f000..0x15e9fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.security.SpinnerRandomBitsSource.run(SpinnerRandomBitsSource.java:57)
at java.lang.Thread.run(Thread.java:484)
"ExecuteThread: '29' for queue: 'default'" daemon prio=5 tid=0x14e2fe20 nid=0xee8
runnable [0x15e5f000..0x15e5fdbc]
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:90)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:931)
at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:369)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:572)
at weblogic.jdbc.pool.Statement.executeQuery(Statement.java:850)
at tavant.platform.jdbc.JDBCTransaction.executeReadQuery(Unknown Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean.invokeSQL(Unknown
Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean_t63yf9_EOImpl.invokeSQL(WebServiceBean_t63yf9_EOImpl.java:456)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.soap.server.servlet.StatelessBeanAdapter.invokeMethod(StatelessBeanAdapter.java:184)
at weblogic.soap.server.servlet.StatelessBeanAdapter.doPost(StatelessBeanAdapter.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '28' for queue: 'default'" daemon prio=5 tid=0x14e2f268 nid=0x12f0
runnable [0x15e1f000..0x15e1fdbc]
at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:589)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '27' for queue: 'default'" daemon prio=5 tid=0x14be7af0 nid=0x11c4
runnable [0x15ddf000..0x15ddfdbc]
at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:589)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '26' for queue: 'default'" daemon prio=5 tid=0x14be7748 nid=0x6dc
waiting for monitor entry [0x15d9f000..0x15d9fdbc]
at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:681)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:520)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:405)
at weblogic.common.internal.ResourceAllocator.reserveWaitSecs(ResourceAllocator.java:395)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:163)
at weblogic.jdbc.common.internal.ConnectionPool.reserveWaitSecs(ConnectionPool.java:117)
at weblogic.jdbc.pool.Driver.connect(Driver.java:152)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:199)
at tavant.platform.jdbc.JDBCTransaction.getConnection(Unknown Source)
at tavant.platform.jdbc.JDBCTransaction.start(Unknown Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean.invokeSQL(Unknown
Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean_t63yf9_EOImpl.invokeSQL(WebServiceBean_t63yf9_EOImpl.java:456)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.soap.server.servlet.StatelessBeanAdapter.invokeMethod(StatelessBeanAdapter.java:184)
at weblogic.soap.server.servlet.StatelessBeanAdapter.doPost(StatelessBeanAdapter.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '25' for queue: 'default'" daemon prio=5 tid=0x14be6b90 nid=0x10f4
waiting for monitor entry [0x15d5f000..0x15d5fdbc]
at java.sql.DriverManager.println(DriverManager.java:424)
at java.sql.SQLException.<init>(SQLException.java:44)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:197)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.refreshResource(ConnectionEnvFactory.java:270)
at weblogic.jdbc.common.internal.ConnectionEnv.refresh(ConnectionEnv.java:919)
at weblogic.common.internal.ResourceAllocator.resetThisOne(ResourceAllocator.java:885)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:486)
at weblogic.common.internal.ResourceAllocator.reserveUnused(ResourceAllocator.java:381)
at weblogic.common.internal.ResourceAllocator.trigger(ResourceAllocator.java:1125)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238)
at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229)
at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:69)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '24' for queue: 'default'" daemon prio=5 tid=0x14be5fd8 nid=0x10a4
waiting on monitor [0x15d1f000..0x15d1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '23' for queue: 'default'" daemon prio=5 tid=0x14be5420 nid=0x11b0
waiting on monitor [0x15cdf000..0x15cdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '22' for queue: 'default'" daemon prio=5 tid=0x14be4868 nid=0x11bc
waiting for monitor entry [0x15c9f000..0x15c9fdbc]
at java.sql.DriverManager.println(DriverManager.java:424)
at java.sql.SQLException.<init>(SQLException.java:44)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.privateCreateStatement(OracleConnection.java:758)
at oracle.jdbc.driver.OracleConnection.createStatement(OracleConnection.java:712)
at weblogic.jdbc.common.internal.ConnectionEnv.test(ConnectionEnv.java:977)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:470)
at weblogic.common.internal.ResourceAllocator.reserveUnused(ResourceAllocator.java:381)
at weblogic.common.internal.ResourceAllocator.trigger(ResourceAllocator.java:1125)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238)
at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229)
at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:69)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '21' for queue: 'default'" daemon prio=5 tid=0x14be3cb0 nid=0x10e0
waiting on monitor [0x15c5f000..0x15c5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '20' for queue: 'default'" daemon prio=5 tid=0x14be30f8 nid=0x620
waiting on monitor [0x15c1f000..0x15c1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '19' for queue: 'default'" daemon prio=5 tid=0x14be2540 nid=0x350
waiting on monitor [0x15bdf000..0x15bdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '18' for queue: 'default'" daemon prio=5 tid=0x14be1988 nid=0x104c
waiting on monitor [0x15b9f000..0x15b9fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '17' for queue: 'default'" daemon prio=5 tid=0x14c4db30 nid=0xff0
waiting on monitor [0x15b5f000..0x15b5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '16' for queue: 'default'" daemon prio=5 tid=0x14c4cf78 nid=0x1148
waiting on monitor [0x15b1f000..0x15b1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '15' for queue: 'default'" daemon prio=5 tid=0x14c4c3c0 nid=0x1118
waiting on monitor [0x15adf000..0x15adfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '14' for queue: 'default'" daemon prio=5 tid=0x14c4b808 nid=0x684
waiting on monitor [0x15a9f000..0x15a9fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '13' for queue: 'default'" daemon prio=5 tid=0x14c4ac50 nid=0xd7c
waiting on monitor [0x15a5f000..0x15a5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '12' for queue: 'default'" daemon prio=5 tid=0x14c4a098 nid=0xdb4
waiting on monitor [0x15a1f000..0x15a1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '11' for queue: 'default'" daemon prio=5 tid=0x14c49588 nid=0x114c
waiting on monitor [0x159df000..0x159dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '10' for queue: 'default'" daemon prio=5 tid=0x14bdf540 nid=0x90c
waiting on monitor [0x1599f000..0x1599fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '9' for queue: 'default'" daemon prio=5 tid=0x14bdea00 nid=0x11cc
waiting on monitor [0x1595f000..0x1595fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '8' for queue: 'default'" daemon prio=5 tid=0x14bdded8 nid=0x12f8
waiting on monitor [0x1591f000..0x1591fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '7' for queue: 'default'" daemon prio=5 tid=0x14ba0420 nid=0x1350
waiting on monitor [0x158df000..0x158dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '6' for queue: 'default'" daemon prio=5 tid=0x14bfae20 nid=0x11d8
waiting on monitor [0x1589f000..0x1589fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '5' for queue: 'default'" daemon prio=5 tid=0x14b9e6a8 nid=0x134c
waiting on monitor [0x1585f000..0x1585fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '4' for queue: 'default'" daemon prio=5 tid=0x14b9e430 nid=0x10bc
waiting on monitor [0x1581f000..0x1581fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '3' for queue: 'default'" daemon prio=5 tid=0x14bdbc00 nid=0x1090
waiting on monitor [0x157df000..0x157dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420Hi Joseph,
Thanks for your useful suggestion.
BTW, I am attaching the config.xml for your
convenience.
Please go through and let us know if anything
to be tuned.
Regards.
Kunal
Joseph Weinstein <[email protected]> wrote:
>
>
Kunal Jain wrote:
Hi
We are using weblogic server 6.1 sp3. The server creates three databaseconnection
pools (details available in the attached config.xml).
The database has a regular downtime every day for a few hours. We arerunning
the server as a windows service. As per the "RefreshMinutes" property,the server
should be able to get new fresh connections once the database comesup. But in
our case it is not doing so. Once the database comes up after its regulardowntime:
-- Sometimes the server does not respond as in we are not able toopen the console
page.
-- Any client that tries connecting to the database thru the servergets blocked
and does not respond.
-- The log file(weblogic.log) does not get updated after some time.
Can someone suggest why the server is showing such a behaviour??
Could it be anything related to the DBMS setting or to the local machine'ssettings
? Following is the thread dump after the server stops responding:Hi. I do see a problem in the thread dump. The application code is calling
java.sql.DriverManager
calls, which are a serious problem in multithreaded applications like
weblogic, because
DriverManager calls are all class-synchronized! All JDBC drivers and
the SQLException constructor
call DriverManager calls all the time, so a single long-running call
to DriverManager.getConnection()
can stop all other JDBC in the whole JVM. One problem you can fix is
at:
at tavant.platform.jdbc.JDBCTransaction.getConnection(Unknown Source)
at tavant.platform.jdbc.JDBCTransaction.start(Unknown Source)
The getConnection() method should be altered to instantiate a Driver
object and
call Driver.connect() directly to make a pool connection, avoiding the
DriverManager
call:
Driver d = (Driver)Class.forName("weblogic.jdbc.pool.Driver").newInstance();
Connection c = d.connect("jdbc:weblogic:pool:" + myPoolName, null );
Let me know if you can make this application change and whether it fixes
the
problem or not.
I could also help if I could see the config.xml, but you seem to have
attached the
startup script.
Joe Weinstein
Full thread dump:
"ListenThread" prio=5 tid=0x14ffb570 nid=0x148c runnable [0x1685f000..0x1685fdbc]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:468)
at java.net.ServerSocket.implAccept(ServerSocket.java:243)
at java.net.ServerSocket.accept(ServerSocket.java:222)
at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:26)
at weblogic.t3.srvr.ListenThread.run(ListenThread.java:260)
"Thread-3" daemon prio=5 tid=0x14fb18b8 nid=0x12d4 waiting on monitor[0x167df000..0x167dfdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"Thread-2" daemon prio=5 tid=0x14f21c68 nid=0xf08 waiting on monitor[0x1679f000..0x1679fdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"Thread-1" daemon prio=5 tid=0x14fb97d8 nid=0xcac waiting on monitor[0x1675f000..0x1675fdbc]
at java.lang.Thread.sleep(Native Method)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:95)
"ExecuteThread: '14' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e75a10
nid=0x13ec waiting on monitor [0x1671f000..0x1671fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '13' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e74e58
nid=0x1434 waiting on monitor [0x166df000..0x166dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '12' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e742a0
nid=0x1154 waiting on monitor [0x1669f000..0x1669fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '11' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e72ed0
nid=0xfe4 waiting on monitor [0x1665f000..0x1665fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '10' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e72318
nid=0x9a4 waiting on monitor [0x1661f000..0x1661fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '9' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e717d8nid=0xf38
waiting on monitor [0x165df000..0x165dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '8' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e70c98nid=0xf68
waiting on monitor [0x1659f000..0x1659fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '7' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e70158nid=0x1008
waiting on monitor [0x1655f000..0x1655fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '6' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6f610nid=0x1204
waiting on monitor [0x1651f000..0x1651fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '5' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6ead0nid=0xef4
waiting on monitor [0x164df000..0x164dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '4' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6dfa8nid=0x12bc
waiting on monitor [0x1649f000..0x1649fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '3' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6d5e8nid=0xf70
waiting on monitor [0x1645f000..0x1645fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e6ccb0nid=0xf84
waiting on monitor [0x1641f000..0x1641fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e67510nid=0x1418
waiting on monitor [0x163df000..0x163dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: 'JmsDispatcher'" daemon prio=5 tid=0x14e64f60nid=0x1228
waiting on monitor [0x1639f000..0x1639fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5
tid=0x14e5c3f0 nid=0xf60 waiting on monitor [0x1635f000..0x1635fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5
tid=0x14e5b908 nid=0xf78 waiting on monitor [0x1631f000..0x1631fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: 'weblogic.transaction.AsyncQueue'" daemonprio=5
tid=0x14e3ebe0 nid=0xfb4 waiting on monitor [0x162df000..0x162dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '9' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e35958
nid=0x9e8 waiting on monitor [0x1629f000..0x1629fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '8' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e3ba30
nid=0x5ac waiting on monitor [0x1625f000..0x1625fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '7' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e3af20
nid=0xdc4 waiting on monitor [0x1621f000..0x1621fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '6' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e3a410
nid=0x11ec waiting on monitor [0x161df000..0x161dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '5' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14bfdff0
nid=0x1078 waiting on monitor [0x1619f000..0x1619fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '4' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14bfd4e0
nid=0x43c waiting on monitor [0x1615f000..0x1615fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '3' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e32410
nid=0xb64 waiting on monitor [0x1611f000..0x1611fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '2' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14c4ee68
nid=0xe30 waiting on monitor [0x160df000..0x160dfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14c4ec10
nid=0x1140 waiting on monitor [0x1609f000..0x1609fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '__weblogic_admin_rmi_queue'" daemonprio=5 tid=0x14e33b18
nid=0xfc0 waiting on monitor [0x1605f000..0x1605fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '1' for queue: '__weblogic_admin_html_queue'" daemonprio=5 tid=0x14e33968
nid=0x718 waiting on monitor [0x1601f000..0x1601fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '__weblogic_admin_html_queue'" daemonprio=5 tid=0x14e3c0a0
nid=0x119c waiting on monitor [0x15fdf000..0x15fdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"TimeEventGenerator" daemon prio=5 tid=0x14bfbce0 nid=0xb90 waitingon monitor
[0x15f9f000..0x15f9fdbc]
at java.lang.Object.wait(Native Method)
at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:279)
at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:138)
at java.lang.Thread.run(Thread.java:484)
"ExecuteThread: '1' for queue: '_weblogic_dgc_queue'" daemon prio=5tid=0x14e39758
nid=0x11ac waiting on monitor [0x15f5f000..0x15f5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '0' for queue: '_weblogic_dgc_queue'" daemon prio=5tid=0x14e38898
nid=0x1194 waiting on monitor [0x15f1f000..0x15f1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"TimeEventGenerator" daemon prio=5 tid=0x14bfc040 nid=0x10a8 waitingon monitor
[0x15edf000..0x15edfdbc]
at java.lang.Object.wait(Native Method)
at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:279)
at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:138)
at java.lang.Thread.run(Thread.java:484)
"SpinnerRandomSource" daemon prio=5 tid=0x14e30c40 nid=0x794 waitingon monitor
[0x15e9f000..0x15e9fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.security.SpinnerRandomBitsSource.run(SpinnerRandomBitsSource.java:57)
at java.lang.Thread.run(Thread.java:484)
"ExecuteThread: '29' for queue: 'default'" daemon prio=5 tid=0x14e2fe20nid=0xee8
runnable [0x15e5f000..0x15e5fdbc]
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:90)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.jdbc.ttc7.MAREngine.unmarshalUB1(MAREngine.java:931)
at oracle.jdbc.ttc7.MAREngine.unmarshalSB1(MAREngine.java:893)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:369)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:572)
at weblogic.jdbc.pool.Statement.executeQuery(Statement.java:850)
at tavant.platform.jdbc.JDBCTransaction.executeReadQuery(UnknownSource)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean.invokeSQL(Unknown
Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean_t63yf9_EOImpl.invokeSQL(WebServiceBean_t63yf9_EOImpl.java:456)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.soap.server.servlet.StatelessBeanAdapter.invokeMethod(StatelessBeanAdapter.java:184)
at weblogic.soap.server.servlet.StatelessBeanAdapter.doPost(StatelessBeanAdapter.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '28' for queue: 'default'" daemon prio=5 tid=0x14e2f268nid=0x12f0
runnable [0x15e1f000..0x15e1fdbc]
at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:589)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '27' for queue: 'default'" daemon prio=5 tid=0x14be7af0nid=0x11c4
runnable [0x15ddf000..0x15ddfdbc]
at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method)
at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:589)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '26' for queue: 'default'" daemon prio=5 tid=0x14be7748nid=0x6dc
waiting for monitor entry [0x15d9f000..0x15d9fdbc]
at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:681)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:520)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:405)
at weblogic.common.internal.ResourceAllocator.reserveWaitSecs(ResourceAllocator.java:395)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:163)
at weblogic.jdbc.common.internal.ConnectionPool.reserveWaitSecs(ConnectionPool.java:117)
at weblogic.jdbc.pool.Driver.connect(Driver.java:152)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:199)
at tavant.platform.jdbc.JDBCTransaction.getConnection(UnknownSource)
at tavant.platform.jdbc.JDBCTransaction.start(Unknown Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean.invokeSQL(Unknown
Source)
at tavant.custom.iri.erpconnector.b2bi.communication.receiver.webservice.WebServiceBean_t63yf9_EOImpl.invokeSQL(WebServiceBean_t63yf9_EOImpl.java:456)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.soap.server.servlet.StatelessBeanAdapter.invokeMethod(StatelessBeanAdapter.java:184)
at weblogic.soap.server.servlet.StatelessBeanAdapter.doPost(StatelessBeanAdapter.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '25' for queue: 'default'" daemon prio=5 tid=0x14be6b90nid=0x10f4
waiting for monitor entry [0x15d5f000..0x15d5fdbc]
at java.sql.DriverManager.println(DriverManager.java:424)
at java.sql.SQLException.<init>(SQLException.java:44)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(ConnectionEnvFactory.java:197)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.refreshResource(ConnectionEnvFactory.java:270)
at weblogic.jdbc.common.internal.ConnectionEnv.refresh(ConnectionEnv.java:919)
at weblogic.common.internal.ResourceAllocator.resetThisOne(ResourceAllocator.java:885)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:486)
at weblogic.common.internal.ResourceAllocator.reserveUnused(ResourceAllocator.java:381)
at weblogic.common.internal.ResourceAllocator.trigger(ResourceAllocator.java:1125)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238)
at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229)
at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:69)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '24' for queue: 'default'" daemon prio=5 tid=0x14be5fd8nid=0x10a4
waiting on monitor [0x15d1f000..0x15d1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '23' for queue: 'default'" daemon prio=5 tid=0x14be5420nid=0x11b0
waiting on monitor [0x15cdf000..0x15cdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '22' for queue: 'default'" daemon prio=5 tid=0x14be4868nid=0x11bc
waiting for monitor entry [0x15c9f000..0x15c9fdbc]
at java.sql.DriverManager.println(DriverManager.java:424)
at java.sql.SQLException.<init>(SQLException.java:44)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.privateCreateStatement(OracleConnection.java:758)
at oracle.jdbc.driver.OracleConnection.createStatement(OracleConnection.java:712)
at weblogic.jdbc.common.internal.ConnectionEnv.test(ConnectionEnv.java:977)
at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.java:470)
at weblogic.common.internal.ResourceAllocator.reserveUnused(ResourceAllocator.java:381)
at weblogic.common.internal.ResourceAllocator.trigger(ResourceAllocator.java:1125)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238)
at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229)
at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:69)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
"ExecuteThread: '21' for queue: 'default'" daemon prio=5 tid=0x14be3cb0nid=0x10e0
waiting on monitor [0x15c5f000..0x15c5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '20' for queue: 'default'" daemon prio=5 tid=0x14be30f8nid=0x620
waiting on monitor [0x15c1f000..0x15c1fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '19' for queue: 'default'" daemon prio=5 tid=0x14be2540nid=0x350
waiting on monitor [0x15bdf000..0x15bdfdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '18' for queue: 'default'" daemon prio=5 tid=0x14be1988nid=0x104c
waiting on monitor [0x15b9f000..0x15b9fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
"ExecuteThread: '17' for queue: 'default'" daemon prio=5 tid=0x14c4db30nid=0xff0
waiting on monitor [0x15b5f000..0x15b5fdbc]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:420)
at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
at webl -
Major performance Issues after upgrading to 10.9.2
Hi,
I have been having major performance issues almost preventing me from using the computer at times. I suspect I don't have enough memory to run Maverick as the computer was great before I upgraded.
If any experts or people with ideas for me to speed up the computer, please respond. If you think the only way to improve performance is add memory or revert back to a previous version of OSX that I have a backup for, let me know.
Here is the info on my system, thank you in advance!!
Hardware Information:
MacBook Pro (15-inch, Late 2008)
MacBook Pro - model: MacBookPro5,1
1 2.4 GHz Intel Core 2 Duo CPU: 2 cores
2 GB RAM
Video Information:
NVIDIA GeForce 9400M - VRAM: 256 MB
NVIDIA GeForce 9600M GT - VRAM: 256 MB
System Software:
OS X 10.9.2 (13C1021) - Uptime: 3 days 21:20:10
Disk Information:
Hitachi HTS543225L9SA02 disk0 : (250.06 GB)
EFI (disk0s1) <not mounted>: 209.7 MB
:c (disk0s2) / [Startup]: 249.2 GB (67.82 GB free)
Recovery HD (disk0s3) <not mounted>: 650 MB
MATSHITADVD-R UJ-868
USB Information:
Apple Inc. Built-in iSight
Apple, Inc. Apple Internal Keyboard / Trackpad
Apple Computer, Inc. IR Receiver
Fitbit Inc. Fitbit Base Station
Apple Inc. BRCM2046 Hub
Apple Inc. Bluetooth USB Host Controller
Thunderbolt Information:
Configuration files:
/etc/sysctl.conf - Exists
/etc/hosts - Count: 29
Gatekeeper:
Mac App Store and identified developers
Kernel Extensions:
[not loaded] com.LaCie.ScsiType00 (1.2.0) Support
[not loaded] com.cisco.nke.ipsec (2.0.1) Support
[not loaded] com.leapfrog.codeless.kext (2) Support
[not loaded] com.leapfrog.driver.LfConnectDriver (1.8.1 - SDK 10.7) Support
[not loaded] com.rim.driver.BlackBerryUSBDriverInt (0.0.39) Support
[not loaded] com.rim.driver.BlackBerryUSBDriverVSP (0.0.39) Support
[not loaded] net.kromtech.kext.AVKauth (2.3.6 - SDK 10.8) Support
[not loaded] net.kromtech.kext.Firewall (2.3.6 - SDK 10.8) Support
Startup Items:
CiscoVPN: Path: /System/Library/StartupItems/CiscoVPN
Problem System Launch Daemons:
[failed] com.apple.wdhelper.plist
Launch Daemons:
[loaded] com.adobe.fpsaud.plist Support
[loaded] com.adobe.SwitchBoard.plist Support
[running] com.fitbit.galileod.plist Support
[loaded] com.google.keystone.daemon.plist Support
[loaded] com.leapfrog.connect.shell.plist Support
[loaded] com.microsoft.office.licensing.helper.plist Support
[loaded] com.timesoftware.timemachineeditor.backupd-auto.plist Support
[running] com.zeobit.MacKeeper.AntiVirus.plist Support
[running] com.zeobit.MacKeeper.plugin.AntiTheft.daemon.plist Support
Launch Agents:
[not loaded] com.adobe.AAM.Updater-1.0.plist Support
[loaded] com.adobe.CS5ServiceManager.plist Support
[running] com.brother.LOGINserver.plist Support
[running] com.google.keystone.agent.plist Support
User Launch Agents:
[loaded] com.adobe.ARM.[...].plist Support
[failed] [email protected]
[loaded] com.macpaw.CleanMyMac.helperTool.plist Support
[running] com.microsoft.LaunchAgent.SyncServicesAgent.plist Support
[running] com.zeobit.MacKeeper.Helper.plist Support
User Login Items:
Google Chrome
Internet Plug-ins:
o1dbrowserplugin: Version: 5.3.1.18536 Support
Google Earth Web Plug-in: Version: 7.1 Support
Default Browser: Version: 537 - SDK 10.9
Flip4Mac WMV Plugin: Version: 2.3.8.1 Support
OfficeLiveBrowserPlugin: Version: 12.2.9 Support
AdobePDFViewerNPAPI: Version: 10.1.9 Support
FlashPlayer-10.6: Version: 13.0.0.201 - SDK 10.6 Support
DivXBrowserPlugin: Version: 2.0 Support
Silverlight: Version: 5.1.10411.0 - SDK 10.6 Support
Flash Player: Version: 13.0.0.201 - SDK 10.6 Outdated! Update
iPhotoPhotocast: Version: 7.0
googletalkbrowserplugin: Version: 5.3.1.18536 Support
QuickTime Plugin: Version: 7.7.3
AdobePDFViewer: Version: 10.1.9 Support
GarminGpsControl: Version: 2.6.4.0 Release Support
SharePointBrowserPlugin: Version: 14.3.9 - SDK 10.6 Support
JavaAppletPlugin: Version: 14.9.0 - SDK 10.7 Check version
Safari Extensions:
Dashlane: Version: 2.4.0.55923
Audio Plug-ins:
BluetoothAudioPlugIn: Version: 1.0 - SDK 10.9
AirPlay: Version: 2.0 - SDK 10.9
AppleAVBAudio: Version: 203.2 - SDK 10.9
iSightAudio: Version: 7.7.3 - SDK 10.9
iTunes Plug-ins:
Quartz Composer Visualizer: Version: 1.4 - SDK 10.9
User Internet Plug-ins:
Dashlane: Version: Dashlane 1.0.0 - SDK 10.7 Support
Move_Media_Player: Version: npmnqmp 071705000010 Support
WebEx64: Version: 1.0 - SDK 10.6 Support
Picasa: Version: 1.0 Support
3rd Party Preference Panes:
Flash Player Support
Flip4Mac WMV Support
Growl Support
Time Machine:
Skip System Files: NO
Auto backup: NO - Auto backup turned off
Time Machine not configured!
Top Processes by CPU:
3% WindowServer
2% SystemUIServer
1% diskimages-helper
1% mds
0% Google Chrome Helper EH
Top Processes by Memory:
94 MB Google Chrome
59 MB GoogleSoftwareUpdateDaemon
57 MB Google Chrome Helper EH
52 MB Google Chrome Helper
39 MB Finder
Virtual Memory Information:
40 MB Free RAM
499 MB Active RAM
481 MB Inactive RAM
465 MB Wired RAM
7.33 GB Page-ins
502 MB Page-outsThe performance issues are due to third party software. Mavericks at the minimum requires 2GB's of RAM but I don't think that's the issue. And you can upgrade RAM anytime.
MacKeeper should be uninstalled. It does far more harm than good.
Do not install MacKeeper: Apple Support Communities
Uninstall instructions > how to uninstall MacKeeper
249.2 GB (67.82 GB free)
Keep an eye on available disk space.
Click your Apple menu icon top left in your screen. From the drop down menu click About This Mac > More Info > Storage
Make sure there's at least 15% free disk space. Less can slow your Mac down.
You also need to uninstall CleanMyMac > How To Uninstall CleanMyMac
Third party so called Mac cleaning utilities are not necessary on a Mac. Your Mac runs maintenance in the background for you.
Mac OS X: About background maintenance tasks -
Performance problems with XMLTABLE and XMLQUERY involving relational data
Hello-
Is anyone out there using XMLTABLE or XMLQUERY with more than a toy set of data? I am running into serious performance problems tyring to do basic things such as:
* Combine records in 10 relational tables into a single table of XMLTYPE records using XMLTABLE. This hangs indefinitely for any more than 800 records. Oracle has confirmed that this is a problem and is working on a fix.
* Combine a single XMLTYPE record with several relational code tables into a single XMLTYPE record using XMLQUERY and ora:view() to insert code descriptions after each code. Performance is 10 seconds for 10 records (terrible) passing a batch of records , or 160 seconds for one record (unacceptable!). How can it take 10 times longer to process 1/10th the number of records? Ironically, the query plan says it will do a full table scan of records for the batch, but an index access for the one record passed to the XMLQUERY.
I am rapidly losing faith in XML DB, and desparately need some hints on how to work around these performance problems, or at least some assurance that others have been able to get this thing to perform.<Note>Long post, sorry.</Note>
First, thanks for the responses above. I'm impressed with the quality of thought put into them. (Do the forum rules allow me to offer rewards? :) One suggestion in particular made a big performance improvement, and I’m encouraged to hear of good performance in pure XML situations. Unfortunately, I think there is a real performance challenge in two use cases that are pertinent to the XML+relational subject of this post and probably increasingly common as XML DB usage increases:
• Converting legacy tabular data into XML records; and
• Performing code table lookups for coded values in XML records.
There are three things I want to accomplish with this post:
• Clarify what we are trying to accomplish, which might expose completely different approaches than I have tried
• Let you know what I tried so far and the rationale for my approach to help expose flaws in my thinking and share what I have learned
• Highlight remaining performance issues in hopes that we can solve them
What we are trying to accomplish:
• Receive a monthly feed of 10,000 XML records (batched together in text files), each containing information about an employee, including elements that repeat for every year of service. We may need to process an annual feed of 1,000,000 XML records in the future.
• Receive a one-time feed of 500,000 employee records stored in about 10 relational tables, with a maximum join depth of 2 or 3. This is inherently a relational-to-XML process. One record/second is minimally acceptable, but 10 records/sec would be better.
• Consolidate a few records (from different providers) for each employee into a single record. Given the data volume, we need to achieve a minimum rate of 10 records per second. This may be an XML-only process, or XML+relational if code lookups are done during consolidation.
• Allow the records to be viewed and edited, with codes resolved into user-friendly descriptions. Since a user is sitting there, code lookups done when a record is viewed (vs. during consolidation) should not take more than 3 seconds total. We have about 20 code tables averaging a few hundred rows each, though one has 450,000 rows.
As requested earlier, I have included code at the end of this post for example tables and queries that accurately (but simply) replicate our real system.
Why we did and why:
• Stored the source XML records as CLOBS: We did this to preserve the records exactly as they were certified and sent from providers. In addition, we always access the entire XML record as a whole (e.g., when viewing a record or consolidating employee records), so this storage model seemed like a good fit. We can copy them into another format if necessary.
• Stored the consolidated XML employee records as “binary XML”. We did this because we almost always access a single, entire record as a whole (for view/edit), but might want to create some summary statistics at some point. Binary XML seemed the best fit.
• Used ora:view() for both tabular source records and lookup tables. We are not aware of any alternatives at this time. If it made sense, most code tables could be pre-converted into XML documents, but this seemed risky from a performance standpoint because the lookups use both code and date range constraints (the meaning of codes changes over time).
• Stored records as XMLTYPE columns in a table with other key columns on the table, plus an XMLTYPE metadata column. We thought this would facilitate pulling a single record (or a few records for a given employee) quickly. We knew this might be unnecessary given XML indexes and virtual columns, but were not experienced with those and wanted the comfort of traditional keys. We did not used XMLTYPE tables or the XML Repository for documents.
• Used XMLTABLE to consolidate XML records by looping over each distinct employee ID in the source batch. We also tried XMLQUERY and it seems to perform about the same. We can achieve 10 to 20 records/second if we do not do any code lookups during consolidation, just meeting our performance requirement, but still much slower than expected.
• Used PL/SQL with XMLFOREST to convert tabular source records to XML by looping over distinct employee IDs. We tried this outside PL/SQL both with XMLFOREST and XMLTABLE+ora:view(), but it hangs in both cases for more than 800 records (a known/open issue). We were able to get it to work by using an explicit cursor to loop over distinct employee IDs (rather than processing all records at once within the query). The performance is one record/second, which is minimally acceptable and interferes with other database activity.
• Used XMLQUERY plus ora:view() plus XPATH constraints to perform code lookups. When passing a single employee record, the response time ranges from 1 sec to 160 sec depending on the length of the record (i.e., number of years of service). We achieved a 5-fold speedup using an XMLINDEX (thank you Marco!!). The result may be minimally acceptable, but I’m baffled why the index would be needed when processing a single XML record. Other things we tried: joining code tables in the FOR...WHERE clauses, joining code tables using LET with XPATH constraints and LET with WHERE clause constraints, and looking up codes individually via JDBC from the application code at presentation time. All those approaches were slower. Note: the difference I mentioned above in equality/inequality constraint performance was due to data record variations not query plan variations.
What issues remain?
We have a minimally acceptable solution from a performance standpoint with one very awkward PL/SQL workaround. The performance of a mixed XML+relational data query is still marginal IMHO, until we properly utilize available optimizations, fix known problems, and perhaps get some new query optimizations. On the last point, I think the query plan for tabular lookups of codes in XML records is falling short right now. I’m reminded of data warehousing in the days before hash joins and star join optimization. I would be happy to be wrong, and just as happy for viable workarounds if I am right!
Here are the details on our code lookup challenge. Additional suggestions would be greatly appreciated. I’ll try to post more detail on the legacy table conversion challenge later.
-- The main record table:
create table RECORDS (
SSN varchar2(20),
XMLREC sys.xmltype
xmltype column XMLREC store as binary xml;
create index records_ssn on records(ssn);
-- A dozen code tables represented by one like this:
create table CODES (
CODE varchar2(4),
DESCRIPTION varchar2(500)
create index codes_code on codes(code);
-- Some XML records with coded values (the real records are much more complex of course):
-- I think this took about a minute or two
DECLARE
ssn varchar2(20);
xmlrec xmltype;
i integer;
BEGIN
xmlrec := xmltype('<?xml version="1.0"?>
<Root>
<Id>123456789</Id>
<Element>
<Subelement1><Code>11</Code></Subelement1>
<Subelement2><Code>21</Code></Subelement2>
<Subelement3><Code>31</Code></Subelement3>
</Element>
<Element>
<Subelement1><Code>11</Code></Subelement1>
<Subelement2><Code>21</Code></Subelement2>
<Subelement3><Code>31</Code></Subelement3>
</Element>
<Element>
<Subelement1><Code>11</Code></Subelement1>
<Subelement2><Code>21</Code></Subelement2>
<Subelement3><Code>31</Code></Subelement3>
</Element>
</Root>
for i IN 1..100000 loop
insert into records(ssn, xmlrec) values (i, xmlrec);
end loop;
commit;
END;
-- Some code data like this (ignoring date ranges on codes):
DECLARE
description varchar2(100);
i integer;
BEGIN
description := 'This is the code description ';
for i IN 1..3000 loop
insert into codes(code, description) values (to_char(i), description);
end loop;
commit;
end;
-- Retrieve one record while performing code lookups. Takes about 5-6 seconds...pretty slow.
-- Each additional lookup (times 3 repeating elements in the data) adds about 1 second.
-- A typical real record has 5 Elements and 20 Subelements, meaning more than 20 seconds to display the record
-- Note we are accessing a single XML record based on SSN
-- Note also we are reusing the one test code table multiple times for convenience of this test
select xmlquery('
for $r in Root
return
<Root>
<Id>123456789</Id>
{for $e in $r/Element
return
<Element>
<Subelement1>
{$e/Subelement1/Code}
<Description>
{ora:view("disaac","codes")/ROW[CODE=$e/Subelement1/Code]/DESCRIPTION/text() }
</Description>
</Subelement1>
<Subelement2>
{$e/Subelement2/Code}
<Description>
{ora:view("disaac","codes")/ROW[CODE=$e/Subelement2/Code]/DESCRIPTION/text()}
</Description>
</Subelement2>
<Subelement3>
{$e/Subelement3/Code}
<Description>
{ora:view("disaac","codes")/ROW[CODE=$e/Subelement3/Code]/DESCRIPTION/text() }
</Description>
</Subelement3>
</Element>
</Root>
' passing xmlrec returning content)
from records
where ssn = '10000';
The plan shows the nested loop access that slows things down.
By contrast, a functionally-similar SQL query on relational data will use a hash join and perform 10x to 100x faster, even for a single record. There seems to be no way for the optimizer to see the regularity in the XML structure and perform a corresponding optimization in joining the code tables. Not sure if registering a schema would help. Using structured storage probably would. But should that be necessary given we’re working with a single record?
Operation Object
|SELECT STATEMENT ()
| SORT (AGGREGATE)
| NESTED LOOPS (SEMI)
| TABLE ACCESS (FULL) CODES
| XPATH EVALUATION ()
| SORT (AGGREGATE)
| NESTED LOOPS (SEMI)
| TABLE ACCESS (FULL) CODES
| XPATH EVALUATION ()
| SORT (AGGREGATE)
| NESTED LOOPS (SEMI)
| TABLE ACCESS (FULL) CODES
| XPATH EVALUATION ()
| SORT (AGGREGATE)
| XPATH EVALUATION ()
| SORT (AGGREGATE)
| XPATH EVALUATION ()
| TABLE ACCESS (BY INDEX ROWID) RECORDS
| INDEX (RANGE SCAN) RECORDS_SSN
With an xmlindex, the same query above runs in about 1 second, so is about 5x faster (0.2 sec/lookup), which is almost good enough. Is this the answer? Or is there a better way? I’m not sure why the optimizer wants to scan the code tables and index into the (one) XML record, rather than the other way around, but maybe that makes sense if the optimizer wants to use the same general plan as when the WHERE clause constraint is relaxed to multiple records.
-- Add an xmlindex. Takes about 2.5 minutes
create index records_record_xml ON records(xmlrec)
indextype IS xdb.xmlindex;
Operation Object
|SELECT STATEMENT ()
| SORT (GROUP BY)
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (AGGREGATE)
| FILTER ()
| TABLE ACCESS (FULL) CODES
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (GROUP BY)
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (AGGREGATE)
| FILTER ()
| TABLE ACCESS (FULL) CODES
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (GROUP BY)
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (AGGREGATE)
| FILTER ()
| TABLE ACCESS (FULL) CODES
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (AGGREGATE)
| FILTER ()
| NESTED LOOPS ()
| FAST DUAL ()
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| SORT (AGGREGATE)
| TABLE ACCESS (BY INDEX ROWID) SYS113473_RECORDS_R_PATH_TABLE
| INDEX (RANGE SCAN) SYS113473_RECORDS_R_PATHID_IX
| TABLE ACCESS (BY INDEX ROWID) RECORDS
| INDEX (RANGE SCAN) RECORDS_SSN
Am I on the right path, or am I totally using the wrong approach? I thought about using XSLT but was unsure how to reference the code tables.
I’ve done the best I can constraining the main record to a single row passed to the XMLQUERY. Given Mark’s post (thanks!) should I be joining and constraining the code tables in the SQL WHERE clause too? That’s going to make the query much more complicated, but right now we’re more concerned about performance than complexity.
Maybe you are looking for
-
Why freezes the Adress-Bar and the Search-Bar when I open a PDF in Firefox 4?
The Problem is, when I open a PDF in Firefox 4 (with the Adobe Reader 10 Plug-In) you cannot type anything in the adress-bar or in the Search-Bar! Also when i press the "back"-Button or open another Tab, the Adress-Bar and Search-Bar is frozen! When
-
Syncing iPad2 doesn't move all photos selected in iTunes from the PC folder.
In iTunes 10.5 I select a folder where I heve the photos to be sync to iPad2 and I select all sub-folders. On iPad some folders appear completly empty and others with just some photos. The number of photos identified ion iTunes after selecting the fo
-
How should I do a findComponent?
In the JavaScript, I want to do a findComponent(comp id), Now 1. on which object should I call findComponent? 2. How can I get a reference to that object? Any code snippets would be of much help.
-
Workflow Builder [Tcode: SWDD] - Navigation Area...
Hello everyone, Quick question: I just inserted a step in an already existing workflow using the drag-n-drop user interface facility and, from a graphical point of view, the step was inserted exactly where I wanted it. However, in the "Navigation Ar
-
Bought a used Mac-Mini formerly owned by a Japanese person - help see msg.
Thanks for your help. I tried a simple software reload first, but the "update software" function still wanted original owners password, so I was back to square 1 again. I did, however, also try the "single user terminal mode" approach to establish