2010-12-17 3 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 % 확인해야합니다 :

[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 mc=de.comporsys.connector.ims.Manag[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 

불행히도 내가 어떤 정보가없는 것 그것은 composys가 더 이상 그것을 지원하지 않는 것을 의미합니다. 왜 이런 일이 발생하는지 알고 있습니까?

는 comporsys가

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에있을 수 있습니다 물건을 초기화 IMSConnectionFactory가 있지만, 제 3 자 물건으로는 블랙 박스이다. IMSConnector는 JBOSS에 등록하고 서블릿에서 액세스합니다. 트랜잭션 처리기의 세부 사항 :에 대한

(시도 INT = 1 + 끈기, 시도> 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의 사전 자바 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를 사용할 수 있다면 서블릿이 Stateless Session Bean (@Stateless)을 호출하고이 Bean이 다른 코드를 호출하게하는 것이 더 쉽습니다. 그러면 자동으로 트랜잭션이 생기고 컨테이너가 커밋을 처리하거나 롤백합니다. 아직 EJB를 사용하지 않는다면 기존 코드를 사용하기 위해 기존 코드를 개조하는 것이 어려울 수 있으며 수동 JTA 코드를 삽입하기가 더 쉽습니다.

+0

질문에 대한 추가 정보를 추가했습니다. – HamoriZ