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 Sehga

    1. 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 Voytitsky

    Hello 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.
    arun

    It 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 Chaliapinas

    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 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

  • Picture but no sound

    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