2010-12-17 10 views
3

私は、comporsys JCAコネクタを使用してJavaからメインフレーム環境に接続しています。 JavaアプリケーションはJBOSSにデプロイされています。そのように構成されたコネクタ:私はこのようなログでエラーの多くを見るようJCAによるJavaメインフレーム通信エラー - 接続がトランザクションにありません

<connection-factories> 
    <no-tx-connection-factory> 
     <jndi-name>ComporsysIMSConnector</jndi-name> 
     <rar-name>ims_connector_port4027_CreditAuth.rar</rar-name> 
     <connection-definition>de.comporsys.connector.ims.ConnectionFactory</connection-definition> 
     <min-pool-size>1</min-pool-size> 
     <max-pool-size>15</max-pool-size> 
     <shrinking-enabled>true</shrinking-enabled> 
     <shrink-period-minutes>2</shrink-period-minutes> 
     <logging-enabled>true</logging-enabled> 
     <!-- <log-filename>/opt/jboss/xxxx/logs/ims_connector.log</log-filename> --> 
     <log-filename>D:\ims_connector.log</log-filename> 
    </no-tx-connection-factory> 
</connection-factories> 

通信には100%OKである必要があります:

[2010-12-16 05:21:10,061] WARN (org.jboss.resource.connectionmanager.NoTxConnectionManager:738) - Pearl 1,DE82000,CGN,D5 ,10450565,768209411 - Connection error occured: org.jboss.resource.conn[email protected]3dcbef2a[state=NORMAL [email protected] handles=1 lastUse=1292++++++++++++ permit=true trackByTx=false mcp=org.jbos[email protected]7afdd15b context=org[email protected]2dbbec72] 
de.comporsys.connector.ims.imstoc.ImstocException: IMS Connect-Error: Return=40, Reason=59 
    at de.comporsys.connector.ims.imstoc.Connection.execute(Connection.java:261) 
    at de.comporsys.connector.ims.imstoc.IMSTOCWorkunit.execute(IMSTOCWorkunit.java:261) 
    at de.comporsys.connector.ims.imstoc.IMSTOCWorkunit.resumeTPipe(IMSTOCWorkunit.java:167) 
    at de.comporsys.connector.ims.imstoc.IMSTOCWorkunit.execute(IMSTOCWorkunit.java:98) 
    at de.comporsys.connector.AbstractStatement.executeRequest(AbstractStatement.java:45) 
    at de.comporsys.connector.ims.Statement.execute(Statement.java:101) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCIAysnc(GenericImsTransaction.java:340) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCI(GenericImsTransaction.java:127) 
    at com.xxx.ims.access.GenericImsTransaction.execute(GenericImsTransaction.java:60) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:50) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleOverPaymentResponse(UpdateCheckinIMF.java:367) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:219) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:121) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:22) 
    at com.xxx.core.rental.VehicleCheckinBC.executeUpdateCheckInWizardTransaction(VehicleCheckinBC.java:541) 
    at com.xxx.core.rental.VehicleCheckinBC.executeVehicleCheckin(VehicleCheckinBC.java:315) 
    at com.xxx.merlin.vehiclecheckin.VehicleCheckinMH.processMessage(VehicleCheckinMH.java:112) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.handleMessage(HttpRequestHandler.java:150) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.processRequest(HttpRequestHandler.java:88) 
    at com.xxx.merlin.servlet.MerlinServlet.doPost(MerlinServlet.java:22) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.xxx.scope.ServletRequestScopeFilter.doFilter(ServletRequestScopeFilter.java:37) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:595) 
[2010-12-16 05:21:10,155] WARN (com.xxx.ims.access.GenericImsTransaction:82) - Pearl 1,DE82000,CGN,D5 ,10450565,768209411 - pac71068: ResourceException caught upon IMF execute. IMF body was:/MSKY\/RAN768209411\/MVA10450565\/DOM23021\/DOGY/G8\/COLN\/AGT82000\/OWM\/FLO\/MOPCV\/DLAY\/DOLCGN\/DOD16Dec10/0600\/TAM39058\/ACTA\/RPIY\/ENT\/AUT\/PRTN\@ 
javax.resource.spi.ResourceAdapterInternalException: de.comporsys.connector.NoActiveTransactionException: connection is not in transaction: [email protected] 
    at de.comporsys.connector.AbstractManagedConnection.getActiveTransaction(AbstractManagedConnection.java:216) 
    at de.comporsys.connector.AbstractStatement.executeRequest(AbstractStatement.java:53) 
    at de.comporsys.connector.ims.Statement.execute(Statement.java:101) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCIAysnc(GenericImsTransaction.java:340) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCI(GenericImsTransaction.java:127) 
    at com.xxx.ims.access.GenericImsTransaction.execute(GenericImsTransaction.java:60) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:50) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleOverPaymentResponse(UpdateCheckinIMF.java:367) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:219) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:121) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:22) 
    at com.xxx.core.rental.VehicleCheckinBC.executeUpdateCheckInWizardTransaction(VehicleCheckinBC.java:541) 
    at com.xxx.core.rental.VehicleCheckinBC.executeVehicleCheckin(VehicleCheckinBC.java:315) 
    at com.xxx.merlin.vehiclecheckin.VehicleCheckinMH.processMessage(VehicleCheckinMH.java:112) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.handleMessage(HttpRequestHandler.java:150) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.processRequest(HttpRequestHandler.java:88) 
    at com.xxx.merlin.servlet.MerlinServlet.doPost(MerlinServlet.java:22) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.xxx.scope.ServletRequestScopeFilter.doFilter(ServletRequestScopeFilter.java:37) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:595) 

    at de.comporsys.connector.ExceptionHandler.handle(ExceptionHandler.java:46) 
    at de.comporsys.connector.AbstractStatement.executeRequest(AbstractStatement.java:55) 
    at de.comporsys.connector.ims.Statement.execute(Statement.java:101) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCIAysnc(GenericImsTransaction.java:340) 
    at com.xxx.ims.access.GenericImsTransaction.executeUCI(GenericImsTransaction.java:127) 
    at com.xxx.ims.access.GenericImsTransaction.execute(GenericImsTransaction.java:60) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:50) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleOverPaymentResponse(UpdateCheckinIMF.java:367) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:219) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:229) 
    at com.xxx.ims.UpdateCheckinIMF.handleRepromptWithEnter(UpdateCheckinIMF.java:280) 
    at com.xxx.ims.UpdateCheckinIMF.parseOutput(UpdateCheckinIMF.java:208) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:57) 
    at com.xxx.ims.UpdateCheckinIMF.executeTransactionInternally(UpdateCheckinIMF.java:28) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:121) 
    at com.xxx.ims.GenericCheckinOperation.executeTransaction(GenericCheckinOperation.java:22) 
    at com.xxx.core.rental.VehicleCheckinBC.executeUpdateCheckInWizardTransaction(VehicleCheckinBC.java:541) 
    at com.xxx.core.rental.VehicleCheckinBC.executeVehicleCheckin(VehicleCheckinBC.java:315) 
    at com.xxx.merlin.vehiclecheckin.VehicleCheckinMH.processMessage(VehicleCheckinMH.java:112) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.handleMessage(HttpRequestHandler.java:150) 
    at com.xxx.merlin.servlet.util.HttpRequestHandler.processRequest(HttpRequestHandler.java:88) 
    at com.xxx.merlin.servlet.MerlinServlet.doPost(MerlinServlet.java:22) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.xxx.scope.ServletRequestScopeFilter.doFilter(ServletRequestScopeFilter.java:37) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:595) 
Caused by: de.comporsys.connector.NoActiveTransactionException: connection is not in transaction: [email protected] 
    at de.comporsys.connector.AbstractManagedConnection.getActiveTransaction(AbstractManagedConnection.java:216) 
    at de.comporsys.connector.AbstractStatement.executeRequest(AbstractStatement.java:53) 
    ... 52 more 

残念ながら、私は何の任意の情報を持っていませんそれは、コンポジットがこれ以上サポートしていないためです。 これはなぜ起こりますか?

comporsysものを初期化しIMSConnectionFactory

public static ConnectionFactory getIMSConnectionFactory() { 
     InitialContext context; 
     ConnectionFactory imsConnectionFactory = null; 

     try { 
      // Create a Properties Object and set the JNDI properties 
      Properties jndiProperties = new Properties(); 

      jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, WizardContext.getInstance().getWizardProperties().getJndiClass()); 

      // Try obtaining a JNDI context so that the application server can be queried 
      context = new InitialContext(jndiProperties); 

      // Request the Connection Factory from the application server using a JNDI context lookup 
      imsConnectionFactory = (ConnectionFactory) context.lookup(WizardContext.getInstance().getWizardProperties().getConnectionJndi()); 

がTHERトランザクション処理がm_IMSStatementSync.executeにあるかもしれないが、それは第三者のものであるとして、それはブラックボックスである。がありますJBOSSのIMSConnectorレジストリは、サーブレットでアクセスします。取引ハンドラの詳細:

について(試行= 1 + tenaciousnessのint;> 0の試み;){警告のため 試し{

    // Slightly nervous re. the location of this block. 
        // It looks like it should be above, where it is now commented out, 
        // but moving it there coincided with failures. 
        // This may well have just been a coincidence - but it all happened at cutover time, 
        // so for the sake of safety I've put it back here for now. 
        m_IMSStatementSync = m_IMSConnection.createStatement(); /* This created by the connection factory */ 
        m_IMSRequest = m_IMSStatementSync.createRequest(); 
        m_IMSRequest.setTimeout(m_WizardConfiguration.getWizardTimeOut()); 
        m_IMSRequest.setTransaction(p_Input.get_TransactionCode()); 
        m_IMSRequest.setCommArea(p_Input); 
        m_IMSRequest.setLterm(p_Input.get_TSR().get_ID()); 
        m_IMSRequest.setTimer((byte) WizardOperationConstants.IMS_CONNECT_SYNC_TIMEOUT); 
        // end of block 

        // Execute the IMS transaction 
        m_IMSReply = m_IMSStatementSync.execute(m_IMSRequest);  /*pac7102*/ 

        attempts = 0; 
       } 
       catch (NoActiveTransactionException e) { 

        if (--attempts < 1) { 
         tenaciousness >>= 1; 
         throw (e); 
        } 
        try { 
         wait(rnd()); 
        } 
        catch (InterruptedException f) { ... } 

       } 

答えて

2

理由は、スタックトレースからかなり明示的です。

de.comporsys.connector.NoActiveTransactionException: connection is not in transaction 

....しかし、インターフェイスが実際に動作しているかどうかを明確にしたいと思うでしょう。いずれにしても、トランザクション内での接続ではないという警告は、JCAプールが非トランザクションプールとして定義されているためです。トランザクションプールに切り替えるためには、次のようになります。私は、これは警告メッセージが、それは接続が何テキサス州での取引であることを期待を示しているという理由だけでサポートされていると仮定しています

<connection-factories> 
    <tx-connection-factory> 
     <jndi-name>ComporsysIMSConnector</jndi-name> 
     <rar-name>ims_connector_port4027_CreditAuth.rar</rar-name> 
     <connection-definition>de.comporsys.connector.ims.ConnectionFactory</connection-definition> 
     <min-pool-size>1</min-pool-size> 
     <max-pool-size>15</max-pool-size> 
     <shrinking-enabled>true</shrinking-enabled> 
     <shrink-period-minutes>2</shrink-period-minutes> 
     <logging-enabled>true</logging-enabled> 
     <!-- <log-filename>/opt/jboss/xxxx/logs/ims_connector.log</log-filename> --> 
     <log-filename>D:\ims_connector.log</log-filename> 
    </tx-connection-factory> 
</connection-factories> 

を - 接続 - 工場が行います。

私はそれにスピンを与え、何が起こるかを見ていきます。

+0

ありがとう、私はテストします – HamoriZ

+0

残念ながら、それは助けになりませんでした。私は同じエラーを受け取ります – HamoriZ

1

トランザクション接続ファクトリの宣言が必要ですが、十分ではありません。

また、データベースと対話するメソッドに宣言型トランザクションを追加する必要があります。私は "PROPAGATION = REQUIRED_NEW"をお勧めします。

+0

私はこれをどこですることができますか?データベースとは相互作用しませんが、メインフレームとは相互作用しません。 – HamoriZ

+0

質問に追加情報を追加しました – HamoriZ

1

JCAリソースの呼び出し元はどこですか?言い換えれば

at com.xxx.ims.access.GenericImsTransaction.executeUCIAysnc(GenericImsTransaction.java:340) 

何ですか?

スタックトレースから、ここにはEJBが含まれていないことが明らかです。コールはサーブレットから入ってきて、JCA接続が使用されるまで独自のコードに伝播します。

GenericImsTransactionはトランザクションのようなものですが、正確には何ですか?どこかで開始されたトランザクションがJTAであることを確認する必要があります。

@Resource 
private UserTransaction tx; 

あなたは、JBoss ASの前のJava EE 5バージョンを使用している場合は、次のことができます。あなたのサーブレットでは、開始とJTAトランザクションをコミットするシンプルなインターフェイスをされてUserTransactionのホールドを取得することができますUserTransactionを取得するために、次のコードを使用します。あなたのコールスタックで

private UserTransaction getUserTransaction() { 
    UserTransaction tx = null; 

    try { 
     tx = (UserTransaction)new InitialContext().lookup("java:comp/UserTransaction"); 
    } catch (NamingException e) { 
     throw new RuntimeException("No UserTransaction available at default location, is a transaction manager installed?", e); 
    } 

    return tx; 
} 

どこかで、あなたはその後、tx.begin();、その後tx.commit()またはtx.rollback()を呼び出す必要があります。

EJB3を使用できる場合は、サーブレットがステートレスセッションBean(@Stateless)を呼び出して、このBeanに別のコードを呼び込ませる方が簡単です。その後、自動的にトランザクションが発生し、コンテナはコミットまたはロールバックを処理します。 EJBをまだ使用していない場合は、既存のコードを使用して既存のコードを改造することは難しく、手動のJTAコードを挿入する方が簡単かもしれません。

+0

質問に追加情報を追加しました – HamoriZ

関連する問題