XA 2PC (or no) with WLS JMS + JDBC
I apolagise that this is a bit of a silly question - its a sanity-check question:
If I have a container managed transaction in an EJB that wraps some update to the
database (via JDBC or via entity bean) and also sends a JMS message (but, bia WLS
JMS), will this result in a 2PC transaction?
Cheers,
Nick
Excellent. Thanks.
-Nick
"Jeremy Watson" <[email protected]> wrote:
>
>
>Yes. There's some good explanations in the WLS JMS faq, eg:
>
>http://edocs.bea.com/wls/docs70/faq/jms.html#252664
>http://edocs.bea.com/wls/docs70/faq/jms.html#252667
>
>I think this one explains how you might avoid having 2pc:
>http://edocs.bea.com/wls/docs70/faq/jms.html#252652
>Looks like there's some version dependencies.
>
>Out of my depth now...
>
>Cheers,
>Jeremy.
>
Similar Messages
-
How to configure MQ with WLS (JMS MQ vs Native MQ)
Hi All,
SOA Suite = 11.1.3.3
MQ Series = 6.0
Jdeveloper = 11.1.3.3
I want to read/write data to an MQ which is setup on a physical box different from Weblogic Server box. But both systems fall under the same network. I did some research on the forums to know the steps to configure MQ but ultimately got confused with the following questions in mind.
1. What is the difference between JMS MQ and Native MQ? How to determine which one to use?
2. If native MQ can be used here, what are the steps to configure Native MQ on WLS in my situation?
3. Do I need any foreign servers or message bridges to be configured?
Please provide any directions or pointers.
Regards,
Neeraj Sehga1. What is the difference between JMS MQ and Native MQ? How to determine which one to use?Native MQ refers to a proprietary api provided by IBM in multiple languages including java so that applications running on these can communicate mq. IBM also provides JMS wrappers around this native api, so that a jms client can talk to mq using JMS API. This is called MQ JMS.
2. If native MQ can be used here, what are the steps to configure Native MQ on WLS in my situation?SOA suite provides a MQ Resource Adaptor which can be used to connect to MQ. The developers of this resource adapter would have used the native api to enable the adaptor to talk to MQ, so that you dont have to worry about it. However you will need to configure the properties of your local MQ ( qmgr , q name etc). This is done in the outbound connection pool properties of the resource adaptor.
please check this blog for how to do this : http://soa-bpel-esb.blogspot.com/2009/09/configuring-mq-in-11g-soa-suite.html.
Since your MQ installation is in a remote machine you will have to configure the following properties specific to your environment - hostname, port, server connection channel, along with the queue manager name and queue name
3. Do I need any foreign servers or message bridges to be configured?Not required for your case if you are using MQ Adaptor. Since MQ also provides a JMS transport , you would have required foreign servers if you have to use JMS Adaptor instead of MQ Adaptor. Native MQ is expected to be faster than MQ JMS as it doesn't have the extra JMS layer. -
Microsoft SQL Server JDBC driver and WLS JMS problem?
Greetings,
I'm using the Microsoft SQL Server JDBC driver with WLS with JMS
persisted to SQL Server, during WLS startup the JMS attempts to
read the JMSStore and JMSState tables in the db, if they are
already present (say, from a previous run) the driver kicks out:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can
not re-read row data for column 1.
If the tables are not present, then WLS creates them and
everything proceeds fine. Now, its not a good thing to attempt
to reread row data for a ResultSet, especially for portability. Why is WLS JMS
doing this? is there some config I can use to adjust JMS startup behavior for
persisted JMS stores?
Jay Houghton
Centiv
[email protected]
long exception trace follows:
<Oct 1, 2002 8:29:11 AM EDT> <Info> <JMS> <User connection factory "BroadcastTopicFactory"
is started.>
<Oct 1, 2002 8:29:18 AM EDT> <Info> <JMS> <JMSServer "EnergizerJMSServer", Opening
JDBC store tables "JMSStore
" and "JMSState" using connection pool "JMSConnectionPool".>
<Oct 1, 2002 8:29:20 AM EDT> <Alert> <JMS> <JMSServer "EnergizerJMSServer", store
failed to open, java.io.IOEx
ception: JMS JDBC store, connection pool = <JMSConnectionPool>, prefix = <null>:
recover
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can
not re-read row data for colum
n 1.
at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
at weblogic.jdbc.pool.ResultSet.getLong(ResultSet.java:304)
at weblogic.jms.store.JDBCIOStream.doRecover(JDBCIOStream.java:618)
at weblogic.jms.store.JDBCIOStream.recover(JDBCIOStream.java:728)
at weblogic.jms.store.JMSStore.recover(JMSStore.java:112)
at weblogic.jms.backend.BEStore.open(BEStore.java:179)
at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:330)
at weblogic.jms.JMSService.createBackEnd(JMSService.java:923)
at weblogic.jms.JMSService.addJMSServer(JMSService.java:1277)
at weblogic.jms.JMSService.addDeployment(JMSService.java:1174)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:23
3)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
at $Proxy40.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub
.java:2734)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:362
at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:154)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
at $Proxy57.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean
_CachingStub.java:480)
at weblogic.management.Admin.startApplicationManager(Admin.java:1151)
at weblogic.management.Admin.finish(Admin.java:571)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:508)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:203)
at weblogic.Server.main(Server.java:35)
Tom,
thanks for the info, I'll bring this to support.
I did try the weblogic jDriver for SQL Server and it works fine, so i think it
must be the way JMS is interacting with the MS driver.
here are my components:
WLS 6.1sp1
Microsoft® SQL Server™ 2000 Driver for JDBC™ is a (Type 4 JDBC) which provides
partial JDBC 2 support (no blobs, clobs, etc)
MS SQL Server 2000 (sp2?)
thanks!
Jay Houghton
[email protected]
Tom Barnes <[email protected]> wrote:
>Hi Jay,
>
>This is not a known issue at BEA as far as I know, perhaps it is the
>result
>of a new driver/database combination. Try using a different driver,
>or a different
>version of the current driver. Meanwhile, use a file store (just as
>reliable but faster) and log a case with customer support, including
>information on your version, service-pack, and what driver you are using.
>
>Tom, BEA
>
>Jay Houghton wrote:
>
>> Greetings,
>>
>> I'm using the Microsoft SQL Server JDBC driver with WLS with JMS
>> persisted to SQL Server, during WLS startup the JMS attempts to
>> read the JMSStore and JMSState tables in the db, if they are
>> already present (say, from a previous run) the driver kicks out:
>>
>> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet
>can
>> not re-read row data for column 1.
>>
>> If the tables are not present, then WLS creates them and
>> everything proceeds fine. Now, its not a good thing to attempt
>> to reread row data for a ResultSet, especially for portability. Why
>is WLS JMS
>> doing this? is there some config I can use to adjust JMS startup behavior
>for
>> persisted JMS stores?
>>
>> Jay Houghton
>> Centiv
>> [email protected]
>>
>> long exception trace follows:
>>
>> <Oct 1, 2002 8:29:11 AM EDT> <Info> <JMS> <User connection factory
>"BroadcastTopicFactory"
>> is started.>
>> <Oct 1, 2002 8:29:18 AM EDT> <Info> <JMS> <JMSServer "EnergizerJMSServer",
>Opening
>> JDBC store tables "JMSStore
>> " and "JMSState" using connection pool "JMSConnectionPool".>
>> <Oct 1, 2002 8:29:20 AM EDT> <Alert> <JMS> <JMSServer "EnergizerJMSServer",
>store
>> failed to open, java.io.IOEx
>> ception: JMS JDBC store, connection pool = <JMSConnectionPool>, prefix
>= <null>:
>> recover
>> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet
>can
>> not re-read row data for colum
>> n 1.
>> at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
>> at com.microsoft.jdbc.base.BaseResultSet.getLong(Unknown Source)
>> at weblogic.jdbc.pool.ResultSet.getLong(ResultSet.java:304)
>> at weblogic.jms.store.JDBCIOStream.doRecover(JDBCIOStream.java:618)
>> at weblogic.jms.store.JDBCIOStream.recover(JDBCIOStream.java:728)
>> at weblogic.jms.store.JMSStore.recover(JMSStore.java:112)
>> at weblogic.jms.backend.BEStore.open(BEStore.java:179)
>> at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:330)
>> at weblogic.jms.JMSService.createBackEnd(JMSService.java:923)
>> at weblogic.jms.JMSService.addJMSServer(JMSService.java:1277)
>> at weblogic.jms.JMSService.addDeployment(JMSService.java:1174)
>> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
>> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
>> at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:23
>> 3)
>> at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
>> at java.lang.reflect.Method.invoke(Native Method)
>> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
>> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
>> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
>> at $Proxy40.updateDeployments(Unknown Source)
>> at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub
>> java:2734)
>> at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:362
>> )
>> at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:154)
>> at java.lang.reflect.Method.invoke(Native Method)
>> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:608)
>> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:592)
>> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:352)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
>> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
>> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
>> at $Proxy57.start(Unknown Source)
>> at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean
>> _CachingStub.java:480)
>> at weblogic.management.Admin.startApplicationManager(Admin.java:1151)
>> at weblogic.management.Admin.finish(Admin.java:571)
>> at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:508)
>> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:203)
>> at weblogic.Server.main(Server.java:35)
>
-
Workaround for using Oracle JDBC extension with WLS pooling
Reading the newsgroup I saw that many of us encountered the problems
with ClassCastException when tried to use Oracle JDBC extension
with WLS pooling. I also had.
In this case BEA recommends to use dangerous
method getVendorConnection() which exposes
the physical connection object to your code.
Yes it's really dangerous because of unsafe usage may breaks
WLS pooled connection(s).
Moreover, this practice will make your JDBC code
unportable (your JDBC code in addition to Oracle dependence
became Weblogic dependent):
void doSmth() {
Connection con = ...;
Connection vCon = ((WLConnection)con).getVendorConnection();
// + mess of usage con in one places and vCon in others
// (where Oracle extensions are needed)
// !Don't forget to don't close vCon!
Sux.
I found the workaround.
Introduction
============
Yes the real cause of ClassCastException is that
in depth of Oracle driver the casting
to class oracle.jdbc.driver.OracleConnection
(not to interface oracle.jdbc.OracleConnection)
is performed.
Someone can say that this is bug or pure desing.
Weblogic pooled connection provide dynamic
implementation for all public interfaces
which real physical (wrapped) connection object implements.
Great feature!
But I guess that all interface methods implemented
by simple call-delegation to physical (wrapped) connection object.
In case of oracle.jdbc.OracleConnection interface
this approach doesn't work for at least one its method:
public OracleConnection unwrap()
WLS pooled connection shoudn't implement this method by
delegation to physical connection object BUT should
return physical connection object itself!
// Wrong implementation of unwrap()
// delegation is used
public OracleConnection unwrap() {
return physicalConnection.unwrap();
// Right implementation of unwrap()
// physical connection returned
public OracleConnection unwrap() {
return physicalConnection;
Workaround
==========
1. Develop your own OracleConnection wrapper class:
import oracle.jdbc.OracleConnection;
import weblogic.jdbc.extensions.WLConnection;
public class MyOracleConnectionImpl implements OracleConnection {
private OracleConnection con;
public MyOracleConnectionImpl(OracleConnection connection)
throws SQLException
this.con = connection;
public OracleConnection unwrap() {
return (OracleConnection)
((WLConnection)con).getVendorConnection();
/* Implement all other methods by delegation to con object */
2. Don't get Connections directly from DataSource --
develop your own simple (may be static) utility
class which retrives Connections from dataSource
and returns them wrapped into your MyOracleConnectionImpl
to your code from some method:
puclic abstract class MyConnectionSource {
public static Connection getConnection() {
Connection con = // get it from DataSource
return new MyOracleConnectionImpl((OracleConnection)con);
3. Add attribute RemoveInfectedConnectionsEnabled="false"
to definition of your JDBCConnectionPool within config.xml
You may do it because of you `safely` use vendorConnection --
you don't expose it to application code.
4. Enjoy the Oracle JDBC extensions in your code!
Example:
Connection con = MyConnectionSource.getConnection;
ArrayDescriptor add =
ArrayDescriptor.createDescriptor("your_type", con);
Hope it helps to someone.
Best regards,
Eugene VoytitskyHello Eugene Voytitsky,
Thanks Eugene Voytitsky for your idea
I have tried the solution suggested by You, but it did not work.
It still throws ClassCastException.
I am sorry for posting the whole code of two classes below.
I did this to give you more clarity.
I am also indicating the place where the exception was thrown..
Please let me know if I am doing something wrong.
OracleConnection Wrapper class
package ejbTesting;
// sql imports
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
// util imports
import java.util.Map;
import java.util.Properties;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleOCIFailover;
import oracle.jdbc.OracleSavepoint;
// import from Weblogic extensions
import weblogic.jdbc.extensions.WLConnection;
public class WeblogicConnectionWrapper implements OracleConnection
// oracle connection object
private OracleConnection connection;
public WeblogicConnectionWrapper (OracleConnection orclConnection)
try
this.connection = orclConnection;
catch(Exception unexpected )
unexpected.printStackTrace();
public OracleConnection unwrap()
try
// The datasource returns a weblogic.jdbc.pool.Connection
// This needs to be type casted to weblogic.jdbc.extensions.WLConnection
// Only this weblogic.jdbc.extensions.WLConnection CAN BE type casted
// to OracleConnection
return (OracleConnection) ((WLConnection) connection).getVendorConnection();
catch(Exception sqlException )
sqlException.printStackTrace ();
return null;
/* Implement all other methods by delegation to connection object */
public Connection _getPC()
return connection._getPC();
public void archive(int i, int j, String s)
throws SQLException
connection.archive(i, j, s);
public void assertComplete()
throws SQLException
connection.assertComplete();
public void clearWarnings()
throws SQLException
connection.clearWarnings();
public void close()
throws SQLException
connection.close();
public void commit()
throws SQLException
connection.commit();
public Statement createStatement()
throws SQLException
return connection.createStatement();
public Statement createStatement(int i, int j)
throws SQLException
return connection.createStatement(i, j);
public boolean getAutoClose()
throws SQLException
return connection.getAutoClose();
public boolean getAutoCommit()
throws SQLException
return connection.getAutoCommit();
public CallableStatement getCallWithKey(String s)
throws SQLException
return connection.getCallWithKey(s);
public String getCatalog()
throws SQLException
return connection.getCatalog();
public boolean getCreateStatementAsRefCursor()
return connection.getCreateStatementAsRefCursor();
public int getDefaultExecuteBatch()
return connection.getDefaultExecuteBatch();
public int getDefaultRowPrefetch()
return connection.getDefaultRowPrefetch();
public Object getDescriptor(String s)
return connection.getDescriptor(s);
public boolean getExplicitCachingEnabled()
throws SQLException
return connection.getExplicitCachingEnabled();
public boolean getImplicitCachingEnabled()
throws SQLException
return connection.getImplicitCachingEnabled();
public boolean getIncludeSynonyms()
return connection.getIncludeSynonyms();
public Object getJavaObject(String s)
throws SQLException
return connection.getJavaObject(s);
public DatabaseMetaData getMetaData()
throws SQLException
return connection.getMetaData();
public Properties getProperties()
return connection.getProperties();
public boolean getRemarksReporting()
return connection.getRemarksReporting();
public boolean getRestrictGetTables()
return connection.getRestrictGetTables();
public String getSQLType(Object obj)
throws SQLException
return connection.getSQLType(obj);
public String getSessionTimeZone()
return connection.getSessionTimeZone();
public int getStatementCacheSize()
throws SQLException
return connection.getStatementCacheSize();
public PreparedStatement getStatementWithKey(String s)
throws SQLException
return connection.getStatementWithKey(s);
public int getStmtCacheSize()
return connection.getStmtCacheSize();
public short getStructAttrCsId()
throws SQLException
return connection.getStructAttrCsId();
public boolean getSynchronousMode()
return connection.getSynchronousMode();
public int getTransactionIsolation()
throws SQLException
return connection.getTransactionIsolation();
public Map getTypeMap()
throws SQLException
return connection.getTypeMap();
public String getUserName()
throws SQLException
return connection.getUserName();
public boolean getUsingXAFlag()
return connection.getUsingXAFlag();
public SQLWarning getWarnings()
throws SQLException
return connection.getWarnings();
public boolean getXAErrorFlag()
return connection.getXAErrorFlag();
public boolean isClosed()
throws SQLException
return connection.isClosed();
public boolean isLogicalConnection()
return connection.isLogicalConnection();
public boolean isReadOnly()
throws SQLException
return connection.isReadOnly();
public String nativeSQL(String s)
throws SQLException
return connection.nativeSQL(s);
public Object openJoltConnection(String s, short word0, short word1)
return connection.openJoltConnection(s, word0, word1);
public void oracleReleaseSavepoint(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleReleaseSavepoint(oraclesavepoint);
public void oracleRollback(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleRollback(oraclesavepoint);
public OracleSavepoint oracleSetSavepoint()
throws SQLException
return connection.oracleSetSavepoint();
public OracleSavepoint oracleSetSavepoint(String s)
throws SQLException
return connection.oracleSetSavepoint(s);
public int pingDatabase(int i)
throws SQLException
return connection.pingDatabase(i);
public CallableStatement prepareCall(String s)
throws SQLException
return connection.prepareCall(s);
public CallableStatement prepareCall(String s, int i, int j)
throws SQLException
return connection.prepareCall(s, i, j);
public CallableStatement prepareCallWithKey(String s)
throws SQLException
return connection.prepareCallWithKey(s);
public PreparedStatement prepareStatement(String s)
throws SQLException
return connection.prepareStatement(s);
public PreparedStatement prepareStatement(String s, int i, int j)
throws SQLException
return connection.prepareStatement(s, i, j);
public PreparedStatement prepareStatementWithKey(String s)
throws SQLException
return connection.prepareStatementWithKey(s);
public void purgeExplicitCache()
throws SQLException
connection.purgeExplicitCache();
public void purgeImplicitCache()
throws SQLException
connection.purgeImplicitCache();
public void putDescriptor(String s, Object obj)
throws SQLException
connection.putDescriptor(s, obj);
public void registerApiDescription(String s, short word0, short word1, String
s1)
connection.registerApiDescription(s, word0, word1, s1);
public void registerSQLType(String s, Class class1)
throws SQLException
connection.registerSQLType(s, class1);
public void registerSQLType(String s, String s1)
throws SQLException
connection.registerSQLType(s, s1);
public void registerTAFCallback(OracleOCIFailover oracleocifailover, Object
obj)
throws SQLException
connection.registerTAFCallback(oracleocifailover, obj);
public void rollback()
throws SQLException
connection.rollback();
public void setAutoClose(boolean flag)
throws SQLException
connection.setAutoClose(flag);
public void setAutoCommit(boolean flag)
throws SQLException
connection.setAutoCommit(flag);
public void setCatalog(String s)
throws SQLException
connection.setCatalog(s);
public void setCreateStatementAsRefCursor(boolean flag)
connection.setCreateStatementAsRefCursor(flag);
public void setDefaultExecuteBatch(int i)
throws SQLException
connection.setDefaultExecuteBatch(i);
public void setDefaultRowPrefetch(int i)
throws SQLException
connection.setDefaultRowPrefetch(i);
public void setExplicitCachingEnabled(boolean flag)
throws SQLException
connection.setExplicitCachingEnabled(flag);
public void setImplicitCachingEnabled(boolean flag)
throws SQLException
connection.setImplicitCachingEnabled(flag);
public void setIncludeSynonyms(boolean flag)
connection.setIncludeSynonyms(flag);
public void setReadOnly(boolean flag)
throws SQLException
connection.setReadOnly(flag);
public void setRemarksReporting(boolean flag)
connection.setRemarksReporting(flag);
public void setRestrictGetTables(boolean flag)
connection.setRestrictGetTables(flag);
public void setSessionTimeZone(String s)
throws SQLException
connection.setSessionTimeZone(s);
public void setStatementCacheSize(int i)
throws SQLException
connection.setStatementCacheSize(i);
public void setStmtCacheSize(int i)
throws SQLException
connection.setStmtCacheSize(i);
public void setStmtCacheSize(int i, boolean flag)
throws SQLException
connection.setStmtCacheSize(i, flag);
public void setSynchronousMode(boolean flag)
connection.setSynchronousMode(flag);
public void setTransactionIsolation(int i)
throws SQLException
connection.setTransactionIsolation(i);
public void setTypeMap(Map map)
throws SQLException
connection.setTypeMap(map);
public void setUsingXAFlag(boolean flag)
connection.setUsingXAFlag(flag);
public void setWrapper(OracleConnection oracleconnection)
connection.setWrapper(oracleconnection);
public void setXAErrorFlag(boolean flag)
connection.setXAErrorFlag(flag);
public void shutdown(int i)
throws SQLException
connection.shutdown(i);
public void startup(String s, int i)
throws SQLException
connection.startup(s, i);
Util class to get Wrapped Connections from
datasource
package ejbTesting;
// j2ee imports
import javax.naming.InitialContext;
import javax.sql.DataSource;
// sql imports
import java.sql.Connection;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
* Wrapper class for the DataSource Connection from Weblogic pool
public class DataSourceConnectionWrapper
// datasource variable
private static transient DataSource datasource = null;
private static String dbName = "jdbc/workbench";
* Method that returns the database connection
public static Connection getConnection()
try
// initialsing the datasource object
initialiseDataSource ();
// Getting a connection from the datasource
Connection con = datasource.getConnection( );
// wrapping it custom wrapper class and
// returning the connection object
return new WeblogicConnectionWrapper((OracleConnection)con);
catch(Exception exception )
exception.printStackTrace();
return null;
private static void initialiseDataSource( ) throws Exception
if ( datasource == null )
try
InitialContext ic = new InitialContext( );
datasource = (DataSource) ic.lookup( dbName );
catch (Exception ne )
throw new Exception( "NamingException while looking up DataSource with
JNDI name" +
dbName + ": \n" + ne.getMessage( ) );
Exception Stack Trace
The line 46 in DataSourceConnectionWrapper
corresponds to
return new WeblogicConnectionWrapper((OracleConnection)con);
Which I feel is logical as the connection which we get from Weblogic
datasource cannot be type casted to OracleConnection
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at ejbTesting.DataSourceConnectionWrapper.getConnection(DataSourceConnectionWrapper.java:46) -
Using foreign JMS providers with wls
does anybody have a clou, where i can find that article, i think it's
by steve felts on using foreign JMS providers with wls? i think the
link on dev2dev is broken?
The new article is called "Using Foreign JMS Providers with WLS" and it's
here:
http://dev2dev.bea.com/resourcelibrary/whitepapers.jsp?highlight=whitepapers
greg
"leopld goess" <[email protected]> wrote in message
news:[email protected]..
> does anybody have a clou, where i can find that article, i think it's
> by steve felts on using foreign JMS providers with wls? i think the
> link on dev2dev is broken?
-
ConnectionPool problems with WLS 7.0 and Oracle 9.2
Hi,
We are using WLS 7.0 SP4, and Oracle 9 and the Oracle thin driver type 4. In our
application on the productive system (and only there) we constantly encounter
a whole set of SQLExceptions which have all in common that the Connection from
the pool is not valid any more when the application tries to use it.
Typical, recurring error messages are:
- Exhausted ResultSet
- Connection has already been closed
- Closed Statement
- Transaction is no longer active - status committing
- NullPointerException at
weblogic.jdbc.pool.Connection.prepareStatement()
There are no special Statements which create these errors. They are spread at
random across practically every query the application creates, and the same queries
sometimes succeed and sometimes fail.
I double and triple checked that all Connections, Statements and ResultSets are
closed immediately after use. As an example, I attached a code snippet and a resulting
StackTrace which.
The problem also seems to occur only with an (unknown) minimum of concurrent usern,
since in the approval tests on an almost identical test system these errors never
occurred.
I also followed the advice from Oracle and installed the latest Oracle JDBC driver
(Oracle 10g) - to no avail.
What else can I do?
Another question: Is it correct that my Oracle JDBC driver is in the application
classpath (via a reference in the Manifest file of the application jar), not in
the system classpath? There has never been a problem with that, but in a Newsgroup
answer from Nov 10, 2003 (subject: "ResultSet closes prematurely"), Joe Weinstein
suggested to "get it listed at the
front of the -classpath argument that the startWebLogic script creates for the
java line that starts the server".
I hesitate to do so, since the driver is in a standard WebApp- directory, WEB-INF/lib.
Is it possible and safe to add a jar located there to the system classpath? If
it is possible, why is it necessary?
Best regards,
Andreas Zehrt
[CodeSnippetsAndStackTraceForConnectionPoolProblem.txt]Andreas Zehrt wrote:
Hi Joe,
Your hint that there is a threading problem was right:
On further investigation of the code I found out that the class that passes the
Connection to the DAO not only stores it as a member at some point (which is not
a good idea anyway) but is also a singleton - then, of course, it's no surprise
that the Connection gets invalid in a incalculable way when concurrent threads
share it.
The singleton instantiation was not so obvious because the way of instantiation
is controlled by a configuration parameter that can be overridden at different
levels.
I changed it and the productive logfiles indicate that the SQLExceptions related
to that class have disappeared.I am happy to have helped.
So, thanks a lot for the advice.
But I am still wondering why this code has worked for so long a time with WLS
5.1 and Oracle 8 (the system has been productive for over 2 years). Even in the
approval tests with WLS 7.0 and Oracle 9, we did not run into problems, although
it was multi-user environment.Mo idea.
I still believe that there is a difference between WLS 5.1 and 7.0 in the way
it treats pooled Oracle JDBC Connections. I wished both Oracle and Bea could be
a little more explicit about those changes and possible version incompatabilities
beyond the general advice "use the latest thin driver".Though I can think of no change to our pooling which would have had any material
effect in this case, I will certainly do what I can to see that our documentation
is explicit about changes.
Joe
Best regards, Andreas
Joe Weinstein <[email protected]> wrote:
Hi Andreas.
Andreas Zehrt wrote:
Hi,
We are using WLS 7.0 SP4, and Oracle 9 and the Oracle thin driver type4. In our
application on the productive system (and only there) we constantlyencounter
a whole set of SQLExceptions which have all in common that the Connectionfrom
the pool is not valid any more when the application tries to use it.
Typical, recurring error messages are:
- Exhausted ResultSetThat is typically if the statement that created it is either re-executed
or closed.
- Connection has already been closedAs described. If you give a stacktrace, we could make a debug patch which
would show
where it was originally closed.
- Closed Statementsame as above.
- Transaction is no longer active - status committingThat implies your code is obtaining a connection from a transactional
datasource,
and then later trying to use it after the transaction which it was associated
with,
is finished.
- NullPointerException at
weblogic.jdbc.pool.Connection.prepareStatement()Maybe any of the above.
There are no special Statements which create these errors. They arespread at
random across practically every query the application creates, andthe same queries
sometimes succeed and sometimes fail.
I double and triple checked that all Connections, Statements and ResultSetsare
closed immediately after use. As an example, I attached a code snippetand a resulting
StackTrace which.
The problem also seems to occur only with an (unknown) minimum of concurrentusern,
since in the approval tests on an almost identical test system theseerrors never
occurred.
I also followed the advice from Oracle and installed the latest OracleJDBC driver
(Oracle 10g) - to no avail.
What else can I do?
Another question: Is it correct that my Oracle JDBC driver is in theapplication
classpath (via a reference in the Manifest file of the applicationjar), not in
the system classpath? There has never been a problem with that, butin a Newsgroup
answer from Nov 10, 2003 (subject: "ResultSet closes prematurely"),Joe Weinstein
suggested to "get it listed at the
front of the -classpath argument that the startWebLogic script createsfor the
java line that starts the server".
I hesitate to do so, since the driver is in a standard WebApp- directory,WEB-INF/lib.
Is it possible and safe to add a jar located there to the system classpath?If
it is possible, why is it necessary?I was only concerned to ensure we know which driver we are working with.
We also ship
an oracle thin driver, which becomes obsolete soon...
I am concerned that your code creates pool connections to be used later.
The problems
can arise if more than one thread ever gets the same connection, or if
the connection
is used in the same thread, spanning transactions. It does also seem
that there may
be a threading issue, because if two threads each call the code to create
a connection,
and two connections are made, but one over-writes the other, the two
threads can
end up using the same connection, and closing it. The over-written one
never gets closed,
resulting in that leak message you got...
Joe
The Connection parameter is opened by a business component class, ComaServiceProviderClassicImpl.It is propagated through
several classes in the business layer, but not used, until the DAOtakes it to make the query.
So, the Connection is closed where it was opened, not in the DAO class.
public class ConcernDAOImpl extends BaseDAO {
public Collection getConcernsForIncidents(Connection conn, Collectionincidents)
throws DataAccessException, ConstraintException, ComaParseException{>
sqlMessage.append(")");
String sqlStmt = sqlMessage.toString();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sqlStmt);
rs = pstmt.executeQuery();
while (rs != null && rs.next()) {
final Concern concern =
new Concern(DAOUtil.getComaOID(rs, ComaDBNames.KDANR));
concern.setIncidentOID(DAOUtil.getComaOID(rs, ComaDBNames.KDAVGENR));
return concerns;
} catch (SQLException sqle) {
// Wrapps real SQL exception
String[] message = new String[]{sqle.getMessage(), sqlStmt};
throw new DataAccessException(ExpCode.S_ORACLE_SQL, message,
sqle);
} finally {
closeAll(rs, pstmt);
_logger.exitDebug(method);
Here, the Connection is acquired and finally closed
public class ComaServiceProviderClassicImpl {
public void updateComplaint(
final Request updateRequest,
final ResponseSingleElement response,
final Principal principal)
throws SystemException {
try {
logger.info("updateComplaint", "store incident");
// store the incident in the database
incidentManager.storeIncident(getConnection(), updateIncident);
// reload the incident from Cache and / or the databaseto get the ContactReferences.
Incident returnIncident = incidentManager.loadIncident(//IncidentManager passes the Connection to the DAO
getConnection(), updateIncident.getOID());
} catch (RemoteException rex) {
// remote exceptions
rollbackIfNecessary();
CoreUtils.unwrapRemoteException(rex, logger);
} catch (SystemException e) {
// all other exceptions --> rollback if necessary and rethrow
rollbackIfNecessary();
throw e;
} finally {
removeConnection();
logger.exitDebug("updateComplaint");
This is the resulting StackTrace:
sql exception: [Closed Statement: next] - sql statement: [select *
at de.deutschepost.ubbrief.coma.persistence.dao.ConcernDAOImpl.getConcernsForIncidents(ConcernDAOImpl.java:363)
at de.deutschepost.ubbrief.coma.persistence.dao.CachingConcernDAOImpl.getConcernsForIncidents(CachingConcernDAOImpl.java:129)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadConcernStructuresIntoIncidents(IncidentManagerImpl.java:1067)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadStructureForIncident(IncidentManagerImpl.java:320)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadIncidents(IncidentManagerImpl.java:264)
at de.deutschepost.ubbrief.coma.persistence.taskmanager.TaskManagerImpl.selectTasksForUser(TaskManagerImpl.java:299)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Impl.getTaskList(ComaServiceProviderZ2Impl.java:113)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Bean_1dhrj7_EOImpl.getTaskList(ComaServiceProviderZ2Bean_1dhrj7_EOImpl.java:154)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList.runServiceMethod(CMPGetTaskList.java:64)
at de.deutschepost.ubbrief.coma.sbbx.sp.BasicMethodProvider.execute(BasicMethodProvider.java:145)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl.execute(CMPGetTaskList_9b9mv5_EOImpl.java:46)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLSkel.invoke(UnknownSource)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:263)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:230)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLStub.execute(UnknownSource)
at de.deutschepost.ubbrief.backbone.jazz.impl.core.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:115)
at de.deutschepost.ubbrief.backbone.common.impl.core.rpc.server.ServerKernelImpl.handleTransportMessage(ServerKernelImpl.java:270)
at de.deutschepost.ubbrief.backbone.common.impl.core.messaging.MessageTransport.handleMessage(MessageTransport.java:454)
at de.deutschepost.ubbrief.backbone.common.impl.core.KernelFacade.handleMessage(KernelFacade.java:209)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean.messageArrived(BackboneBean.java:637)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean_ina9d7_ELOImpl.messageArrived(BackboneBean_ina9d7_ELOImpl.java:105)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.LocalQueueReceiveBean.deliverMessage(LocalQueueReceiveBean.java:43)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.AbstractMessageReceiveBean.onMessage(AbstractMessageReceiveBean.java:127)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:377)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:311)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:286)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2351)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2267)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
####<May 26, 2004 12:18:43 PM CEST> <Warning> <JDBC> <S0048016> <REMA20Z><Finalizer> <kernel identity> <> <001074> <A JDBC pool connection leak
was detected. A Connection leak occurs when a connection obtained from
the pool was not closed explicitly by calling close() and then was disposed
by the garbage collector and returned to the connection pool. The following
stack trace at create shows where the leaked connection was created.
Stack trace at connection create:
at weblogic.jdbc.pool.Connection.<init>(Connection.java:66)
at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:294)
at weblogic.jdbc.pool.Driver.connect(Driver.java:210)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:373)
at weblogic.jdbc.jts.Driver.connect(Driver.java:129)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:287)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnectionFromPool(ComaComponentImpl.java:163)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnectionInternal(ComaComponentImpl.java:135)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnection(ComaComponentImpl.java:99)
at de.deutschepost.ubbrief.coma.persistence.customermanager.CurryCustomerManagerImpl.findCustomers(CurryCustomerManagerImpl.java:73)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2BaseImpl.resolveCustomerInstances(ComaServiceProviderZ2BaseImpl.java:808)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Impl.getTaskList(ComaServiceProviderZ2Impl.java:213)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Bean_1dhrj7_EOImpl.getTaskList(ComaServiceProviderZ2Bean_1dhrj7_EOImpl.java:154)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList.runServiceMethod(CMPGetTaskList.java:64)
at de.deutschepost.ubbrief.coma.sbbx.sp.BasicMethodProvider.execute(BasicMethodProvider.java:145)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl.execute(CMPGetTaskList_9b9mv5_EOImpl.java:46)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLSkel.invoke(UnknownSource)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:263)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:230)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLStub.execute(UnknownSource)
at de.deutschepost.ubbrief.backbone.jazz.impl.core.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:115)
at de.deutschepost.ubbrief.backbone.common.impl.core.rpc.server.ServerKernelImpl.handleTransportMessage(ServerKernelImpl.java:270)
at de.deutschepost.ubbrief.backbone.common.impl.core.messaging.MessageTransport.handleMessage(MessageTransport.java:454)
at de.deutschepost.ubbrief.backbone.common.impl.core.KernelFacade.handleMessage(KernelFacade.java:209)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean.messageArrived(BackboneBean.java:637)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean_ina9d7_ELOImpl.messageArrived(BackboneBean_ina9d7_ELOImpl.java:105)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.LocalQueueReceiveBean.deliverMessage(LocalQueueReceiveBean.java:43)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.AbstractMessageReceiveBean.onMessage(AbstractMessageReceiveBean.java:127)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:377)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:311)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:286)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2351)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2267)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210) -
Registering a third party XAResource with WLS TM
The WebLogic 6.x documentation for registering third party XA resources
contains the following code snippet: -
XAResource res = ... // Resource provider's implementation of XAResource
How do you get a providers implementation?
Where is this documented?
7.0 is great however there are those of us out here who have spent hundreds of
thousands of dollars using weblogic 6.x and are struggling through getting 2pc
to work with different vendors. I would strongly suggest that BEA provide
detailed documentation which consists of the following for 6.1 and greater and
not put off till tomorrow solving the problems we as your customers have today
Detailed setup information for
1. IBM MQ
2. Firano
3. Sybase
4. Oracle
5. MS SQL Server
With examples which work I mean full examples which show the following:
1. Using JDBC to update a dbms on one connection pool and
having a message sent to another XA resource which is persistent
all part of a single transaction
2. Using two connection pools two different servers doing simple
updates/inserts using a single transaction
3. Specific version numbers tested I know for sybase you mention their
JConnect 5.2.1 but there is only 5.2 with EBF's and 5.5 with EBFs
which specific sybase server version not just 12.x but 12.x with the
following
EBF's applied same for jdbc driver with complete example.
It seems some of the more complicated operations are the least documented
which is the inverse of what we as users would expect.
We have spent probably 8-9 days with our dbas and myself trying to get item
#2 above to work. Rob Wollen has helped in that it seems my sybase config is
correct on weblogic but we still havent solved the problem. Perhaps it wont
work
with Sybase Jconnect 5.2 or 5.5 with 12.0 version of their product??
I had also opened up a case back last october which totally was non-productive.
So please please dont wait on new versions to fix documentation issues which
are present today.
thanks Larry
Priscilla Fung wrote:
> We have been realizing the lack of documentation for third party vendors who
> would like to participate in distributed transactions coordinated by WLS TM
> (similarly for vendors who would like to import foreign distributed
> transactions into WLS). We are in the process of adding extremely detailed
> documentation in this area in the ISV guide in the 7.0 release.
>
> Regards,
> Priscilla
>
> Robbie Williams <[email protected]> wrote in message
> news:[email protected]...
> >
> > Further more, the WebLogic JTA documentation states that it is 'important'
> to register
> > the XAResource before enlisting yet we have found in initial testing that
> without
> > registration the third party resource does enlist correctly and partakes
> in the
> > 2PC. The BEA white paper jmsjta states that the third party resource
> 'must' be
> > registered.
> >
> > Neither document gives any explanations as to why third party resources
> should
> > be registered and the implications of not doing so - most disappointing.
> >
> > Robbie Williams <[email protected]> wrote:
> > >The WebLogic 6.x documentation for registering third party XA resources
> > >
> > >contains the following code snippet: -
> > >
> > >XAResource res = ... // Resource provider's implementation of XAResource
> > >
> > >How do you get a providers implementation?
> > >Where is this documented?
> > >
> >
> >
> >
-
JMS JDBC store failed to open after switched to a different database machine
Hi,
I'm running WebLogic 6.1 sp3/Oracle 8.1.6 and I configure the JMS JDBC store for
persistent messaging. I was working fine until I switched to use a different database
machine which has the same software configuration as the old one. It was giving
me "failed to create tables" error at start up time. But I checked the database
and found out the two tables (<prefix>JMSSTORE and <prefix>JMSSTATE) were both
created and I was able to query although they don't contain any data. By the way,
I'm using thin client.
Anyone can help? Thanks a lot!
Here's the exception:
<Jul 23, 2003 4:33:10 PM PDT> <Alert> <JMS> <JMSServer "notifyServer", store failed
to open, java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix
= <qa.JMS_SERVER_>: failed to create tables.
java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix = <qa.JMS_SERVER_>:
failed to create tables
at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:311)
at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1400)
at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:376)
at weblogic.jms.store.JMSStore.open(JMSStore.java:110)
at weblogic.jms.backend.BEStore.open(BEStore.java:180)
at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:390)
at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy39.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy58.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
at weblogic.management.Admin.finish(Admin.java:644)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
at weblogic.Server.main(Server.java:35)
>
<Jul 23, 2003 4:33:10 PM PDT> <Error> <JMS> <Failed to deploy JMS Server "notifyServer"
due to weblogic.jms.common.ConfigurationException: JMS can not open store.
weblogic.jms.common.ConfigurationException: JMS can not open store
at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:395)
at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy39.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy58.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
at weblogic.management.Admin.finish(Admin.java:644)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
at weblogic.Server.main(Server.java:35)
----------- Linked Exception -----------
java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix = <qa.JMS_SERVER_>:
failed to create tables
at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:311)
at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1400)
at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:376)
at weblogic.jms.store.JMSStore.open(JMSStore.java:110)
at weblogic.jms.backend.BEStore.open(BEStore.java:180)
at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:390)
at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy39.updateDeployments(Unknown Source)
at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
at $Proxy58.start(Unknown Source)
at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
at weblogic.management.Admin.finish(Admin.java:644)
at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
at weblogic.Server.main(Server.java:35)
>
Hi Michelle,
I suspect a permission problem where the new tables are created
using the JDBC driver's default schema, but the prefix
specifies another schema "qa". So the tables are getting
created, but aren't found.
Work-around one:
manually extract, edit, and run the ddl that creates
the tables to specify the schema. Prepend
"qa.JMS_SERVER_" to all table names
(This is fairly simple to do.)
http://edocs.bea.com/wls/docs61/jms/appb.html#999286
Work-around two:
Don't include "qa." in the prefix.
(i'm not sure if this will work)
Work-around three:
Change the username of the JDBC pool to "qa".
(i'm not sure if this will work)
Work-around four:
Change the schema for the tables that were created
under the JDBC driver's default schema to "qa".
(I'm not sure how this is done, or even
if it is possible. Database specific.)
Tom
Michelle Lian wrote:
> Hi,
>
> I'm running WebLogic 6.1 sp3/Oracle 8.1.6 and I configure the JMS JDBC store for
> persistent messaging. I was working fine until I switched to use a different database
> machine which has the same software configuration as the old one. It was giving
> me "failed to create tables" error at start up time. But I checked the database
> and found out the two tables (<prefix>JMSSTORE and <prefix>JMSSTATE) were both
> created and I was able to query although they don't contain any data. By the way,
> I'm using thin client.
>
> Anyone can help? Thanks a lot!
>
> Here's the exception:
>
> <Jul 23, 2003 4:33:10 PM PDT> <Alert> <JMS> <JMSServer "notifyServer", store failed
> to open, java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix
> = <qa.JMS_SERVER_>: failed to create tables.
> java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix = <qa.JMS_SERVER_>:
> failed to create tables
> at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:311)
> at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1400)
> at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:376)
> at weblogic.jms.store.JMSStore.open(JMSStore.java:110)
> at weblogic.jms.backend.BEStore.open(BEStore.java:180)
> at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:390)
> at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
> at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
> at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy39.updateDeployments(Unknown Source)
> at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
> at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
> at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy58.start(Unknown Source)
> at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
> at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
> at weblogic.management.Admin.finish(Admin.java:644)
> at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
> at weblogic.Server.main(Server.java:35)
>
> <Jul 23, 2003 4:33:10 PM PDT> <Error> <JMS> <Failed to deploy JMS Server "notifyServer"
> due to weblogic.jms.common.ConfigurationException: JMS can not open store.
> weblogic.jms.common.ConfigurationException: JMS can not open store
> at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:395)
> at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
> at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
> at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy39.updateDeployments(Unknown Source)
> at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
> at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
> at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy58.start(Unknown Source)
> at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
> at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
> at weblogic.management.Admin.finish(Admin.java:644)
> at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
> at weblogic.Server.main(Server.java:35)
> ----------- Linked Exception -----------
> java.io.IOException: JMS JDBC store, connection pool = <jmsPool>, prefix = <qa.JMS_SERVER_>:
> failed to create tables
> at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:311)
> at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1400)
> at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:376)
> at weblogic.jms.store.JMSStore.open(JMSStore.java:110)
> at weblogic.jms.backend.BEStore.open(BEStore.java:180)
> at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:390)
> at weblogic.jms.JMSService.createBackEnd(JMSService.java:906)
> at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273)
> at weblogic.jms.JMSService.addDeployment(JMSService.java:1169)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:360)
> at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:285)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:239)
> at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:199)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy39.updateDeployments(Unknown Source)
> at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2977)
> at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:372)
> at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:160)
> at java.lang.reflect.Method.invoke(Native Method)
> at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636)
> at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621)
> at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:360)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
> at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:468)
> at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:209)
> at $Proxy58.start(Unknown Source)
> at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:480)
> at weblogic.management.Admin.startApplicationManager(Admin.java:1234)
> at weblogic.management.Admin.finish(Admin.java:644)
> at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:524)
> at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:207)
> at weblogic.Server.main(Server.java:35)
>
-
JMS & JDBC - 2 phase distributed EJB transaction
Hi-
I've got a requirement for some session EJBs and message drive EJBs which have to update an Oracle 9i DB and send out JMS messages (SonicMQ). This all needs to be wrapped in a 2PC distributed transaction. I am currently evaluating whether it's better to use container managed transactions for this, or to roll our own resource coordinator to take explicit control of the transactions. Unfortunately, I haven't found much information / examples for 9iAS (Release 2) to do something like this using container managed transactions (2PC, distributed, JMS & JDBC). Can anyone can point me to some examples, documentation, tips, etc?
Thanks in advance. Also please note that my email is wrong (and i can't seem to change it), so please don't try to send email there.
arunIt doesn't sounds like these 2 operations are running together in a
transaction. Otherwise, these would be atomic.
First off, make sure that you get your JDBC connection from a
TxDataSource, and make sure that your JMS queue send is in an XA
transaction.
-- Rob
Sunita Ajwani wrote:
> In a Distributed transaction involving a JMS queue and a XA-compliant JDBC resource,
> messages are persisted to the queue before the persist is invoked on the Database
> side. The next application picks up the message from the queue but does not find
> the related data in the database.How do we avoid this?
> We are using
> Weblogic Server 6.1 on unix box
> SunOS gemini 5.8 Generic_108528-07 sun4u sparc SUNW,Ultra-4
>
> Appreciate any response
>
-
JMS JDBC Store in OC4J ?
Hi, does anybody know if I could configure JMS JDBC Store under OC4J ? It is possible to be done under WebLogic 6.1 (I believe Oracle uses for this purpose Advanced Queue). What about support of other JMS providers, like SonicMQ ? Is it possible to integrate with OC4J ?
Thank you,
Andrejus ChaliapinasHi, does anybody know if I could configure JMS JDBC Store under OC4J ? It is possible to be done under WebLogic 6.1 (I believe Oracle uses for this purpose Advanced Queue). What about support of other JMS providers, like SonicMQ ? Is it possible to integrate with OC4J ?
Thank you,
Andrejus Chaliapinas -
Inet opta2000 XDatasource with WLS 6.0 sp1, please help
Hi,
I am using I-net Opta 2000 v2.05 JDBC XADriver with WLS 6.0 sp1.
I create a connection pool using com.inet.tds. XDatasouce. In
WLS startup script, I put in -Dweblogic.Debug=weblogic.JTAJDBC
debug switch. The output reports UnknownMethod datasourceName
exception. I attached stack trace at the end. I didn't create datasourceName.
the next thing I want to do is:
1) Create one CMP entity bean name cmpBean_1 using XA Pool one
connects with MS SQL Database DB1.
2) Create second CMP entity bean name cmpBean_2 using XA Pool
two connects with MS SQL Database DB2.
3) In a sessionless bean, I will do
ut = ctx.getUserTransaction();
ut.begin();
cmpBean_1.doSomething();
cmpBean_2.doSomething();
ut.commit();
Could I do like this?
Thanks in advance.
Rock
config.xml
<JDBCConnectionPool DriverName="com.inet.tds.XDataSource"
Name="rock_development_tx"
properties="user=app;password=lication" Targets="Moon"
URL="jdbc:inetdae7:rock_development@localhost"/>
<JDBCTxDataSource EnableTwoPhaseCommit="true"
JNDIName="jdbc/Tx4Rock" Name="Tx_DataSource_4_Rock"
PoolName="rock_development_tx" Targets="Moon"/>
debug outputs:
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- XADataSource props:{user=app, password=lication, dataSourceName=rock_development_tx}>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- Property 'user' set>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- Property 'password' set>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- < Cannot set property 'dataSourceName'
java.lang.NoSuchMethodException
at java.lang.Class.getMethod0(Native Method)
at java.lang.Class.getMethod(Class.java:888)
at weblogic.jdbc.common.internal.DataSourceUtil.initProp(DataSourceUtil.java:48)
at weblogic.jdbc.common.internal.DataSourceUtil.initProps(DataSourceUtil.java:19)
at weblogic.jdbc.common.internal.XAConnectionEnvFactory.getXADataSrc(XAConnectionE
nvFactory.java:124)
at weblogic.jdbc.common.internal.XAConnectionEnvFactory.<init>(XAConnectionEnvFact
ory.java:35)
at weblogic.jdbc.common.internal.ConnectionPool.getResourceFactory(ConnectionPool.
java:353)
at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:301)
at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:91)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarg
et.java:283)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTar
get.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(Depl
oymentTarget.java:194)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(Deployment
Target.java:158)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.ja
va:559)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:545)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanIm
pl.java:285)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:431)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:172)
at $Proxy29.updateDeployments(Unknown Source)
Hi,
I am using I-net Opta 2000 v2.05 JDBC XADriver with WLS 6.0 sp1.
I create a connection pool using com.inet.tds. XDatasouce. In
WLS startup script, I put in -Dweblogic.Debug=weblogic.JTAJDBC
debug switch. The output reports UnknownMethod datasourceName
exception. I attached stack trace at the end. I didn't create datasourceName.
the next thing I want to do is:
1) Create one CMP entity bean name cmpBean_1 using XA Pool one
connects with MS SQL Database DB1.
2) Create second CMP entity bean name cmpBean_2 using XA Pool
two connects with MS SQL Database DB2.
3) In a sessionless bean, I will do
ut = ctx.getUserTransaction();
ut.begin();
cmpBean_1.doSomething();
cmpBean_2.doSomething();
ut.commit();
Could I do like this?
Thanks in advance.
Rock
config.xml
<JDBCConnectionPool DriverName="com.inet.tds.XDataSource"
Name="rock_development_tx"
properties="user=app;password=lication" Targets="Moon"
URL="jdbc:inetdae7:rock_development@localhost"/>
<JDBCTxDataSource EnableTwoPhaseCommit="true"
JNDIName="jdbc/Tx4Rock" Name="Tx_DataSource_4_Rock"
PoolName="rock_development_tx" Targets="Moon"/>
debug outputs:
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- XADataSource props:{user=app, password=lication, dataSourceName=rock_development_tx}>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- Property 'user' set>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- Property 'password' set>
<Mar 15, 2001 10:57:14 PM PST> <Debug> <JDBC XA> <main -tx:null-
-pool:rock_development_tx
- < Cannot set property 'dataSourceName'
java.lang.NoSuchMethodException
at java.lang.Class.getMethod0(Native Method)
at java.lang.Class.getMethod(Class.java:888)
at weblogic.jdbc.common.internal.DataSourceUtil.initProp(DataSourceUtil.java:48)
at weblogic.jdbc.common.internal.DataSourceUtil.initProps(DataSourceUtil.java:19)
at weblogic.jdbc.common.internal.XAConnectionEnvFactory.getXADataSrc(XAConnectionE
nvFactory.java:124)
at weblogic.jdbc.common.internal.XAConnectionEnvFactory.<init>(XAConnectionEnvFact
ory.java:35)
at weblogic.jdbc.common.internal.ConnectionPool.getResourceFactory(ConnectionPool.
java:353)
at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:301)
at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:91)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarg
et.java:283)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTar
get.java:233)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(Depl
oymentTarget.java:194)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(Deployment
Target.java:158)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.ja
va:559)
at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:545)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanIm
pl.java:285)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:431)
at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:172)
at $Proxy29.updateDeployments(Unknown Source)
-
General install and deployment problem with WLS clustering on two boxes
Hi,
I've come across a general installation problem with WLS with a cluster spanning two different physical machines and two Managed Servers, one Managed Server per physical machine.
The problem is, starting from scratch, you install WLS on both physical machines. You can then use the config wizard to create the domain, cluster and managed servers, but this is a manual typing in process.
So we've now got a WLST Script which we run with "java weblogic.WLST domaincreate.py domain.properties". This is good as it creates the domain, cluster, managed servers and JMS modules.
Now the trouble is, it doesn't do anything to the 2nd physical machine which will be running only the 2nd Managed Server.
One dirty way to get around this in order to start the 2nd managed server was to copy the domain directory to the 2nd server, but I'm sure this is bad practice and what you can actually do is improve the WLST script to actually, but the same as the config wizard and dump the nessary information to the 2nd physical machine in order so you don't need to copy the domain directory across so that it will startup straight after running the WLST.
Any help appriecated.
Surfbum.Hi I think I've found the answer. You can build a managed server template using the pack command.
http://e-docs.bea.com/common/docs90/pack/tasks.html -
Using a foreign WLS JMS queue (no bridge)
Hi,
We have a configuration from which we communicate from WLS 7 to a foreign MQ via
JMS. This works well and we have loaded the foreign MQ jms objects into WLS JNDI
using a statup class (as the whitepaper available describes) and we look them
up successfully.
However, we now have a siutation where we briefly need to switch our application
to point to a WLS JMS queue on another remote WLS server. Is there an easy way
to load foreign (maybe remote would be a better word in this case) WLS JMS QCF's
and destinations into my local WLS JNDI so that I can treat them the same way
as my MQ objects?
I can't seem to find any information on how to do this as all information seems
to point towards the messaging bridge (we can't use this as the bridge changes
the message JMSMessageID and screws our correlation mechanism up).
I know we could just look the foreign objects up by using the JNDI environment
of the remote WLS machine but this would mean changing code and this I can't to
do (as all our code uses the local default WLS JNDI).
Any ideas would be gratefully received.
Cheers,
Jay.
WLS JMS and MQ JMS handle their JNDI objects a little differently, so I can
see how this can be confusing. An MQ JMS "ConnectionFactory" or
"Destination" object is like a little configuration file that tells you
where the queue manager or queue is, so you can serialize it and look it up
later and use it to find the queue manager.
A WLS JMS ConnectionFactory or Destination object is a reference to an
object on a running server. So, you connect to the server and look them up,
and then you can use it for messaging. You don't have to store these objects
in a separate place, like MQ makes you do. But it means that the WLS JNDI
objects have to be looked up from a running server, and if the server
restarts, you have to look them up again.
Doing what you're asking is definitely trickier in 7.0. One thing you could
do is, again using a servlet or an EJB, connect to the remote JMS cluster
and look up the objects at the time you want to make the switch. (If the
remote cluster is down, you'll have to retry from time to time.) If the
remote cluster is down, you won't be able to look up those objects, but then
again, if it were down you wouldn't be able to send messages there anyway.
Using 8.1 would be less complicated, but this method should also work.
greg
"Jay Green" <[email protected]> wrote in message
news:[email protected]...
>
> Thanks Greg. When I was searching the BEA website I read about the
facility in
> 8.1. Unfortunatley, as you point out, it doesn't help me much with WLS
7.0.
>
> My first thought was to copy my exisiting MQ startup class but I couldn't
work
> out how to do this for the remote WLS jms objects as the standard jms
classes
> (for QCF etc) don't have methods that allow me to define the foreign WLS
jms
> host IP address etc. I checked the WLS 7 API and the jms package didn't
seem
> to offer anything to help me do this (as IBM do for MQ). Any ideas?
>
> Apologies if I'm being a bit slow here!
>
> "Greg Brail" <[email protected]> wrote:
> >WLS 8.1 includes a feature called "Foreign JMS Providers" that lets you
> >configure (using the console or config.xml) a link between a JMS JNDI
> >object
> >in your WLS servers' tree, and a JNDI object in another provider -- which
> >could be WLS JMS, or a foreign vendor.
> >
> >Using this feature, your application could just look up the local JNDI
> >objects in the local WLS tree, and then the server in turn performs the
> >lookup from the actual JNDI provider using the parameters you put in
> >the
> >console (or config.xml). So, when you make a change in the console, new
> >JNDI
> >lookups will go to the new place.
> >
> >Unfortunately, this doesn't help you with 7.0. You could always
> >programmitically update the local JNDI tree the way you're doing in your
> >startup class, but instead do it from a servlet or an EJB.
> >
> > greg
> >
> >"Jay Green" <[email protected]> wrote in message
> >news:[email protected]...
> >>
> >> Hi,
> >>
> >> We have a configuration from which we communicate from WLS 7 to a
foreign
> >MQ via
> >> JMS. This works well and we have loaded the foreign MQ jms objects
> >into
> >WLS JNDI
> >> using a statup class (as the whitepaper available describes) and we
> >look
> >them
> >> up successfully.
> >>
> >> However, we now have a siutation where we briefly need to switch our
> >application
> >> to point to a WLS JMS queue on another remote WLS server. Is there
> >an easy
> >way
> >> to load foreign (maybe remote would be a better word in this case)
> >WLS JMS
> >QCF's
> >> and destinations into my local WLS JNDI so that I can treat them the
> >same
> >way
> >> as my MQ objects?
> >> I can't seem to find any information on how to do this as all
information
> >seems
> >> to point towards the messaging bridge (we can't use this as the bridge
> >changes
> >> the message JMSMessageID and screws our correlation mechanism up).
> >>
> >> I know we could just look the foreign objects up by using the JNDI
> >environment
> >> of the remote WLS machine but this would mean changing code and this
> >I
> >can't to
> >> do (as all our code uses the local default WLS JNDI).
> >>
> >> Any ideas would be gratefully received.
> >>
> >> Cheers,
> >>
> >> Jay.
> >
> >
>
-
Exception with WLS 6.1.3 & Oracle 9.2 thin driver
I'm testing out an upgrade from the Oracle thin driver that ships with WLS
6.1
to the Oracle 9.2 thin driver. My database server is running Oracle 8.1.7.
The only configuration change I made was to put the 9.2 classes12.zip at the
beginning of ths classpath. The line of my code where the exception is
being
throw is the first attempt at performing a resultSet.getLong() call. Has
anyone
gotten this combination to work yet? Any ideas on the error? I'd really
like to test out the native LOB support in the new drivers.
TIA - Gordon
<Oct 14, 2002 2:59:02 PM EDT> <Error> <Audit> <- Login failed because
loginName:
buyerOrgAdmin1034621942027 was not found.
com.eoriginal.engine.core.session.bas
icAccess.OrgUserDataAccessSessionBean_rngrwj_Impl::findUserAccountInfo,
java.lan
g.ArrayIndexOutOfBoundsException
at oracle.sql.NUMBER._fromLnxFmt(NUMBER.java:3181)
at oracle.sql.LnxLibThin.lnxsni(LnxLibThin.java:6571)
at oracle.sql.NUMBER.toLong(NUMBER.java:373)
at
oracle.jdbc.dbaccess.DBConversion.NumberBytesToLong(DBConversion.java
:2915)
at
oracle.jdbc.driver.OracleStatement.getLongValue(OracleStatement.java:
4373)
at
oracle.jdbc.driver.OracleResultSetImpl.getLong(OracleResultSetImpl.ja
va:529)
at
oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:1540)
at weblogic.jdbc.jts.ResultSet.getLong(ResultSet.java:518)
at
weblogic.jdbc.rmi.internal.ResultSetImpl.getLong(ResultSetImpl.java:4
77)
at
weblogic.jdbc.rmi.internal.ResultSetStraightReader.getLong(ResultSetS
traightReader.java:142)
at
weblogic.jdbc.rmi.SerialResultSet.getLong(SerialResultSet.java:450)
at
com.eoriginal.engine.core.session.basicAccess.OrgUserDataAccessSessio
nBean.findUserAccountInfo(OrgUserDataAccessSessionBean.java:1272)
at
com.eoriginal.engine.core.session.basicAccess.OrgUserDataAccessSessio
nBean_rngrwj_EOImpl.findUserAccountInfo(OrgUserDataAccessSessionBean_rngrwj_
EOIm
pl.java:475)
at
com.eoriginal.engine.core.session.basicAccess.LoginSessionBean.valida
teLogin(LoginSessionBean.java:135)
at
com.eoriginal.engine.core.session.basicAccess.LoginSessionBean.valida
teLogin(LoginSessionBean.java:94)
at
com.eoriginal.engine.core.session.basicAccess.LoginSessionBean_moz7fh
EOImpl.validateLogin(LoginSessionBeanmoz7fh_EOImpl.java:37)
at
com.eoriginal.engine.core.session.basicAccess.LoginSessionBean_moz7fh
EOImplWLSkel.invoke(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:274)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
(com.eoriginal.engine.core.session.basicAccess.LoginSessionBean_moz7fh_Impl:
:va
lidateLogin)>Have you tried the thick (oci) driver?
We're looking to upgrade too.
"Richard" <[email protected]> wrote:
>
I try to connect to an Oracle 9.2.0 on Windows XP with the jdbc thin
driver. I
use weblogic server 7.0 SP1 (same problem with weblogic server 7.0.0).
I try direct connection (without pool) or with the weblogic pool, and
I get the
same error :
java.lang.ArrayIndexOutOfBoundsException
at oracle.security.o3logon.C0.r(C0)
at oracle.security.o3logon.C0.l(C0)
at oracle.security.o3logon.C1.c(C1)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientH
elper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:289)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:246)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
va:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(Con
nectionEnvFactory.java:201)
at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(Con
nectionEnvFactory.java:140)
at weblogic.jdbc.common.internal.ResourceAllocator.makeResources(Resourc
eAllocator.java:931)
at weblogic.jdbc.common.internal.ResourceAllocator.finishInit(ResourceAl
locator.java:457)
at weblogic.jdbc.common.internal.ResourceAllocator.<init>(ResourceAlloca
tor.java:316)
at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.j
ava:292)
at weblogic.jdbc.common.internal.JDBCService.addDeploymentx(JDBCService.
java:282)
at weblogic.jdbc.common.internal.JDBCService.addDeployment(JDBCService.j
ava:270)
The same test works well with an Oracle 9.0 !
I have already try with this differents drivers :
8.1.7, 9.0 and 9.2 and I always have the same problem. -
Java 1.5 client with WLS 8.1 MBeans...
Hi,
I maintain http://www.hermesjms.com and am investigating a problem with Hermes, which uses a 1.5 VM, interrogating WLS MBeans with WLS on 1.4.
This thread describes what users have seen and what I have also replicated:
http://www.hermesjms.com/forum/viewtopic.php?t=126
As you can see, setting -Djmx.serial.form=1.0 fixes the serialisation problem but I now get the InstanceNotFoundException.
I invoke getMBean() from the getStatistics() method here:
http://cvs.sourceforge.net/viewcvs.py/hermesjms/Hermes4/src/java/hermes/ext/weblogic/WebLogicJMSAdmin.java?view=markup
Any kind soul out there know what the problem may be? I'm kinda confused...
Many thanks,
Colin.Hi Tom,
When I upgrade to 9.0 client against 8.1 server I get the exceptions at the end of this mail. The server I am talking to is a single server, not in a cluster, and is just the out-of-the-box WLS 8.1 with a JMS server and some queues and topics configured.
I don't get the ClassNotFoundException for WebLogicObjectName as this exists in weblogic.jar. Is there anything I need to do to WLS 8.1 to allow a 9.0 client to interop?
Cheers,
Colin.
2005-08-04 08:25:41,753 [Timer-7] DEBUG hermes.ext.weblogic.WebLogicJMSAdmin - Constructed JMSDestination MBean name: mydomain:JMSServerRuntime=MyJMS Server,Location=myserver,Name=MyDistributed Queue,ServerRuntime=myserver,Type=JMSDestinationRuntime
2005-08-04 08:25:41,773 [Timer-7] ERROR hermes.HermesWatchManager - Unexpected Exception
weblogic.rmi.extensions.RemoteRuntimeException: Unexpected Exception
at weblogic.management.internal.MBeanHomeImpl_814_WLStub.getMBean(Unknown Source)
at hermes.ext.weblogic.WebLogicJMSAdmin.getMBean(WebLogicJMSAdmin.java:329)
at hermes.ext.weblogic.WebLogicJMSAdmin.getStatistics(WebLogicJMSAdmin.java:155)
at hermes.ext.weblogic.WebLogicJMSAdmin.getDepth(WebLogicJMSAdmin.java:119)
at hermes.impl.HermesAdminAdapter.getDepth(HermesAdminAdapter.java:108)
at hermes.impl.DefaultHermesImpl.getDepth(DefaultHermesImpl.java:1187)
at hermes.HermesWatchManager.updateWatchStatistics(HermesWatchManager.java:202)
at hermes.HermesWatchManager.doUpdate(HermesWatchManager.java:170)
at hermes.HermesWatchManager.access$000(HermesWatchManager.java:38)
at hermes.HermesWatchManager$2.run(HermesWatchManager.java:84)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: weblogic.management.interop.WebLogicObjectName: This error could indicate that a component was deployed on a cluster member but not other members of that cluster. Make sure that any component deployed on a server that is part of a cluster is also deployed on all other members of that cluster
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:191)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:155)
... 12 more
Caused by: java.lang.ClassNotFoundException: weblogic.management.interop.WebLogicObjectName: This error could indicate that a component was deployed on a cluster member but not other members of that cluster. Make sure that any component deployed on a server that is part of a cluster is also deployed on all other members of that cluster
at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:344)
at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:258)
at weblogic.j2ee.ApplicationManager.loadClass(ApplicationManager.java:253)
at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:327)
at weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:316)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:120)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:120)
at weblogic.management.internal.MBeanHomeImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Unknown Source)
2005-08-04 08:25:41,773 [Timer-7] DEBUG hermes.HermesWatchManager - closing Hermes WebLogic
2005-08-04 08:25:41,783 [Timer-7] DEBUG hermes.impl.jms.ThreadLocalSessionManager - all sessions closed, closing Connection
Maybe you are looking for
-
Strange error while loading master data
Hi, Has anybody seen the following error while loading master data? 6 duplicate record found. 886 recordings used in table /BI0/XCOSTCENTER 6 duplicate record found. 886 recordings used in table /BI0/PCOSTCENTER and repeat again once (so total
-
Hi, Have been able to get pictures, videos etc but no sound.
-
Is 'Thunder port' compatible with 'mini port' cords/divices?
I am attempting to use my Imac 27" as a display for my xbox 360. So as instructed by "Apple chat" I purchased a KANEX XD connector for $140 and now it is not woking because of the Thunder port. Then I seeked assistance once more from "Apple chat" to
-
Using Microphone & Earphones on G5 to connect via Skype?
Appreciate assistance on how to connect my Headphone/microphone such that I can speak with friends via Skype Software. I am able to do this without the using of the headset ( using built in system ) but when I plug it into the G5 I am not heard nor c
-
Thinking about Lightroom?
A year or so ago I felt a real need for more editing power than iPhoto provided. So I checked out Aperture and Lightroom. While I wanted to be able to retain the thousands of keywords I had assigned to my photos and therefore tended to favor Aperture