12 Replies Latest reply on Oct 31, 2018 6:37 AM by mitul.vora

    jmsXA session issue while sending a message

    mitul.vora

      Hi,

       

      We are using wildfly 10 as a standalone server and using java:/jmsXA (pooled connection factory) to send messages to an internal queue.It works fine but at certain time we get an Exception like

      ARJUNA016086: TransactionImple.enlistResource setTransactionTimeout on XAResource < formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a544893:19e7bcc6:5bc8b3a6:23f67, node_name=1, branch_uid=0:ffff0a544893:19e7bcc6:5bc8b3a6:23f6a, subordinatenodename=null, eis_name=java:/JmsXA NodeId:cac77c82-375c-11e8-85b0-990d99ece9d8 > threw: XAException.XAER_RMFAIL: javax.transaction.xa.XAException

      at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.setTransactionTimeout(ClientSessionImpl.java:1183).

       

      After this exception the thread is not able to send message to queue and transaction gets rolled back.

       

      AMQ212009: resetting session after failure .

      AMQ152001: problem resetting xa session after failure: ActiveMQObjectClosedException[errorType=OBJECT_CLOSED message=AMQ119019: Session is closed]

      are the logs while trying to send messages to queue.

       

      It starts working after a reboot.

       

      Need to understand the issue.

        • 1. Re: jmsXA session issue while sending a message
          mnovak

          Hi Mitul,

           

          could you share server.log and standalone...xml from your server, please? I believe this might be consequence of another issue.

           

          Thanks,

          Mirek

          • 2. Re: jmsXA session issue while sending a message
            mitul.vora

            Hi,

             

            PFB standalone-full.xml.

             

            <?xml version='1.0' encoding='UTF-8'?>

             

             

            <server xmlns="urn:jboss:domain:4.2">

             

             

                <extensions>

                    <extension module="org.jboss.as.clustering.infinispan"/>

                    <extension module="org.jboss.as.connector"/>

                    <extension module="org.jboss.as.deployment-scanner"/>

                    <extension module="org.jboss.as.ee"/>

                    <extension module="org.jboss.as.ejb3"/>

                    <extension module="org.jboss.as.jaxrs"/>

                    <extension module="org.jboss.as.jdr"/>

                    <extension module="org.jboss.as.jmx"/>

                    <extension module="org.jboss.as.jpa"/>

                    <extension module="org.jboss.as.jsf"/>

                    <extension module="org.jboss.as.jsr77"/>

                    <extension module="org.jboss.as.logging"/>

                    <extension module="org.jboss.as.mail"/>

                    <extension module="org.jboss.as.naming"/>

                    <extension module="org.jboss.as.pojo"/>

                    <extension module="org.jboss.as.remoting"/>

                    <extension module="org.jboss.as.sar"/>

                    <extension module="org.jboss.as.security"/>

                    <extension module="org.jboss.as.transactions"/>

                    <extension module="org.jboss.as.webservices"/>

                    <extension module="org.jboss.as.weld"/>

                    <extension module="org.wildfly.extension.batch.jberet"/>

                    <extension module="org.wildfly.extension.bean-validation"/>

                    <extension module="org.wildfly.extension.io"/>

                    <extension module="org.wildfly.extension.messaging-activemq"/>

                    <extension module="org.wildfly.extension.request-controller"/>

                    <extension module="org.wildfly.extension.security.manager"/>

                    <extension module="org.wildfly.extension.undertow"/>

                    <extension module="org.wildfly.iiop-openjdk"/>

                </extensions>

             

             

                <system-properties>

                    <property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>

                </system-properties>

             

             

             

             

                <management>

                    <security-realms>

                        <security-realm name="ManagementRealm">

                            <authentication>

                                <local default-user="$local" skip-group-loading="true"/>

                                <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>

                            </authentication>

                            <authorization map-groups-to-roles="false">

                                <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>

                            </authorization>

                        </security-realm>

                        <security-realm name="ApplicationRealm">

                            <server-identities>

                                <ssl>

                                    <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost"/>

                                </ssl>

                            </server-identities>

                            <authentication>

                                <local default-user="$local" allowed-users="*" skip-group-loading="true"/>

                                <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>

                            </authentication>

                            <authorization>

                                <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>

                            </authorization>

                        </security-realm>

                        <security-realm name="ejb-security-realm">

                            <server-identities>

                                <secret value="ZWxpdGVjb3Jl"/>

                            </server-identities>

                        </security-realm>

                    </security-realms>

                    <audit-log>

                        <formatters>

                            <json-formatter name="json-formatter"/>

                        </formatters>

                        <handlers>

                            <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir"/>

                        </handlers>

                        <logger log-boot="true" log-read-only="false" enabled="false">

                            <handlers>

                                <handler name="file"/>

                            </handlers>

                        </logger>

                    </audit-log>

                    <management-interfaces>

                        <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">

                            <socket-binding http="management-http"/>

                        </http-interface>

                    </management-interfaces>

                    <access-control provider="simple">

                        <role-mapping>

                            <role name="SuperUser">

                                <include>

                                    <user name="$local"/>

                                </include>

                            </role>

                        </role-mapping>

                    </access-control>

                </management>

             

             

                <profile>

                    <subsystem xmlns="urn:jboss:domain:logging:3.0">

                        <console-handler name="CONSOLE">

                            <level name="WARN"/>

                            <formatter>

                                <named-formatter name="COLOR-PATTERN"/>

                            </formatter>

                        </console-handler>

                        <periodic-rotating-file-handler name="FILE" autoflush="true">

                            <formatter>

                                <named-formatter name="PATTERN"/>

                            </formatter>

                            <file relative-to="jboss.server.log.dir" path="server.log"/>

                            <suffix value=".yyyy-MM-dd"/>

                            <append value="true"/>

                        </periodic-rotating-file-handler>

                        <periodic-rotating-file-handler name="CRESTEL_SOM_TRACE_LOG" autoflush="true">

                            <formatter>

                                <named-formatter name="PATTERN"/>

                            </formatter>

                            <file relative-to="jboss.server.log.dir" path="crestel_som_error_trace.log"/>

                            <suffix value=".yyyy-MM-dd"/>

                            <append value="true"/>

                        </periodic-rotating-file-handler>

                        <periodic-rotating-file-handler name="CRESTEL_SOM_INFO_LOG" autoflush="true">

                            <formatter>

                                <named-formatter name="PATTERN"/>

                            </formatter>

                            <file relative-to="jboss.server.log.dir" path="som_info.log"/>

                            <suffix value=".yyyy-MM-dd"/>

                            <append value="true"/>

                        </periodic-rotating-file-handler>

                        <logger category="com.arjuna">

                            <level name="WARN"/>

                        </logger>

                        <logger category="org.jboss.as.config">

                            <level name="WARN"/>

                        </logger>

                        <logger category="sun.rmi">

                            <level name="WARN"/>

                        </logger>

                        <logger category="SOMSTACKTRACE">

                            <level name="WARN"/>

                            <handlers>

                                <handler name="CRESTEL_SOM_TRACE_LOG"/>

                            </handlers>

                        </logger>

                       

                        <logger category="System.out">

                            <level name="WARN"/>

                            <handlers>

                                <handler name="FILE"/>

                            </handlers>

                        </logger>

                        <root-logger>

                            <level name="WARN"/>

                            <handlers>

                                <handler name="CONSOLE"/>

                                <handler name="FILE"/>

                            </handlers>

                        </root-logger>

                        <formatter name="PATTERN">

                            <pattern-formatter pattern="WORKFLOW %X{WORKFLOWID} %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) %s%e%n"/>

                        </formatter>

                        <formatter name="COLOR-PATTERN">

                            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p (%t) %s%e%n"/>

                        </formatter>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">

                        <default-job-repository name="in-memory"/>

                        <default-thread-pool name="batch"/>

                        <job-repository name="in-memory">

                            <in-memory/>

                        </job-repository>

                        <thread-pool name="batch">

                            <max-threads count="10"/>

                            <keepalive-time time="30" unit="seconds"/>

                        </thread-pool>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:datasources:4.0">

                  

                           

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">

                        <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" auto-deploy-zipped="true" auto-deploy-exploded="true" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:ee:4.0">

                        <global-modules>

                            <module name="org.jboss.remoting-jmx" slot="main"/>

                            <module name="org.jboss.remoting3.remoting-jmx" slot="main"/>

                            <module name="org.jboss.logging" slot="main"/>

                            <module name="org.jboss.logmanager" slot="main"/>

                            <module name="org.apache.commons.lang" slot="main"/>

                            <module name="org.apache.activemq.artemis" slot="main"/>

                            <module name="org.jboss.remote-naming" slot="main"/>

                            <module name="org.apache.commons.collections" slot="main"/>

                            <module name="org.jboss.xnio" slot="main"/>

                            <module name="javax.annotation.api" slot="main"/>

                            <module name="javax.jms.api" slot="main"/>

                            <module name="javax.servlet.api" slot="main"/>

                            <module name="org.apache.log4j" slot="main"/>

                            <module name="org.eclipse.jdt.ecj" slot="main"/>

                            <module name="org.dom4j" slot="main"/>

                            <module name="org.javassist" slot="main"/>

                            <module name="org.jboss.ironjacamar.jdbcadapters" slot="main"/>

                            <module name="oracle" slot="main"/>

                            <module name="conf" slot="main"/>

                            <module name="custom" slot="main"/>

                            <module name="weblogic" slot="main"/>

                        </global-modules>

                        <ear-subdeployments-isolated>false</ear-subdeployments-isolated>

                        <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>

                        <concurrent>

                            <context-services>

                                <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true"/>

                            </context-services>

                            <managed-thread-factories>

                                <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default"/>

                            </managed-thread-factories>

                            <managed-executor-services>

                                <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-threshold="60000" keepalive-time="5000"/>

                            </managed-executor-services>

                            <managed-scheduled-executor-services>

                                <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-threshold="60000" keepalive-time="3000"/>

                            </managed-scheduled-executor-services>

                        </concurrent>

                        <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/jdbc/CrestelWFMDS" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:ejb3:4.0">

                        <session-bean>

                            <stateless>

                                <bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>

                            </stateless>

                            <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple"/>

                            <singleton default-access-timeout="5000"/>

                        </session-bean>

                        <mdb>

                            <resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>

                            <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>

                        </mdb>

                        <pools>

                            <bean-instance-pools>

                                <strict-max-pool name="slsb-strict-max-pool" max-pool-size="200" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                                <strict-max-pool name="mdb-strict-max-pool" max-pool-size="200" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>

                            </bean-instance-pools>

                        </pools>

                        <caches>

                            <cache name="simple"/>

                            <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>

                        </caches>

                        <passivation-stores>

                            <passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>

                        </passivation-stores>

                        <async thread-pool-name="default"/>

                        <timer-service thread-pool-name="default" default-data-store="default-file-store">

                            <data-stores>

                                <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir"/>

                            </data-stores>

                        </timer-service>

                        <remote connector-ref="http-remoting-connector" thread-pool-name="default"/>

                        <thread-pools>

                            <thread-pool name="default">

                                <max-threads count="10"/>

                                <keepalive-time time="100" unit="milliseconds"/>

                            </thread-pool>

                            <thread-pool name="timer">

                                <max-threads count="10"/>

                                <keepalive-time time="100" unit="milliseconds"/>

                            </thread-pool>

                        </thread-pools>

                        <iiop enable-by-default="false" use-qualified-name="false"/>

                        <default-security-domain value="other"/>

                        <default-missing-method-permissions-deny-access value="true"/>

                        <log-system-exceptions value="true"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:io:1.1">

                        <worker name="default"/>

                        <buffer-pool name="default"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:infinispan:4.0">

                        <cache-container name="server" default-cache="default" module="org.wildfly.clustering.server">

                            <local-cache name="default">

                                <transaction mode="BATCH"/>

                            </local-cache>

                        </cache-container>

                        <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">

                            <local-cache name="passivation">

                                <locking isolation="REPEATABLE_READ"/>

                                <transaction mode="BATCH"/>

                                <file-store passivation="true" purge="false"/>

                            </local-cache>

                            <local-cache name="persistent">

                                <locking isolation="REPEATABLE_READ"/>

                                <transaction mode="BATCH"/>

                                <file-store passivation="false" purge="false"/>

                            </local-cache>

                            <local-cache name="concurrent">

                                <file-store passivation="true" purge="false"/>

                            </local-cache>

                        </cache-container>

                        <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">

                            <local-cache name="passivation">

                                <locking isolation="REPEATABLE_READ"/>

                                <transaction mode="BATCH"/>

                                <file-store passivation="true" purge="false"/>

                            </local-cache>

                            <local-cache name="persistent">

                                <locking isolation="REPEATABLE_READ"/>

                                <transaction mode="BATCH"/>

                                <file-store passivation="false" purge="false"/>

                            </local-cache>

                        </cache-container>

                        <cache-container name="hibernate" default-cache="local-query" module="org.hibernate.infinispan">

                            <local-cache name="entity">

                                <transaction mode="NON_XA"/>

                                <eviction strategy="LRU" max-entries="10000"/>

                                <expiration max-idle="100000"/>

                            </local-cache>

                            <local-cache name="local-query">

                                <eviction strategy="LRU" max-entries="10000"/>

                                <expiration max-idle="100000"/>

                            </local-cache>

                            <local-cache name="timestamps"/>

                        </cache-container>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:iiop-openjdk:1.0">

                        <orb socket-binding="iiop" ssl-socket-binding="iiop-ssl"/>

                        <initializers security="identity" transactions="spec"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:jca:4.0">

                        <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>

                        <bean-validation enabled="true"/>

                        <default-workmanager>

                            <short-running-threads>

                                <core-threads count="50"/>

                                <queue-length count="50"/>

                                <max-threads count="50"/>

                                <keepalive-time time="10" unit="seconds"/>

                            </short-running-threads>

                            <long-running-threads>

                                <core-threads count="50"/>

                                <queue-length count="50"/>

                                <max-threads count="50"/>

                                <keepalive-time time="10" unit="seconds"/>

                            </long-running-threads>

                        </default-workmanager>

                        <cached-connection-manager/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:jmx:1.3">

                        <expose-resolved-model/>

                        <expose-expression-model/>

                        <remoting-connector use-management-endpoint="true"/>

                        <sensitivity non-core-mbeans="true"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:jpa:1.1">

                        <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:mail:2.0">

                        <mail-session name="default" jndi-name="java:jboss/mail/Default">

                            <smtp-server outbound-socket-binding-ref="mail-smtp"/>

                        </mail-session>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">

                        <server name="default">

                            <security-setting name="#">

                                <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>

                            </security-setting>

             

             

                            <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>

                            <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">

                                <param name="batch-delay" value="50"/>

                            </http-connector>

                            <in-vm-connector name="in-vm" server-id="0"/>

                            <http-acceptor name="http-acceptor" http-listener="default"/>

                            <http-acceptor name="http-acceptor-throughput" http-listener="default">

                                <param name="batch-delay" value="50"/>

                                <param name="direct-deliver" value="false"/>

                            </http-acceptor>

                            <in-vm-acceptor name="in-vm" server-id="0"/>

                           

                            <jms-queue name="AuditQueue" entries="java:/jms/queue/AuditQueue"/>

                            <jms-queue name="Request" entries="jms/queue/Request java:jboss/exported/jms/queue/Request"/>

                            <jms-queue name="Response" entries="jms/queue/Response java:jboss/exported/jms/queue/Response"/>

                            <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>

                            <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>

                            <connection-factory name="InVmXAConnectionFactory" entries="java:/XAConnectionFactory" connectors="in-vm" factory-type="XA_GENERIC"/>

                            <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa" min-pool-size="100" max-pool-size="150"/>

                        </server>

                    

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:naming:2.0">

                        <remote-naming/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:remoting:3.0">

                        <endpoint/>

                        <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:resource-adapters:4.0">

                        <resource-adapters>

                                        </resource-adapters>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:sar:1.0"/>

                    <subsystem xmlns="urn:jboss:domain:security-manager:1.0">

                        <deployment-permissions>

                            <maximum-set>

                                <permission class="java.security.AllPermission"/>

                            </maximum-set>

                        </deployment-permissions>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:security:1.2">

                        <security-domains>

                            <security-domain name="other" cache-type="default">

                                <authentication>

                                    <login-module code="Remoting" flag="optional">

                                        <module-option name="password-stacking" value="useFirstPass"/>

                                    </login-module>

                                    <login-module code="RealmDirect" flag="required">

                                        <module-option name="password-stacking" value="useFirstPass"/>

                                    </login-module>

                                </authentication>

                            </security-domain>

                            <security-domain name="jboss-web-policy" cache-type="default">

                                <authorization>

                                    <policy-module code="Delegating" flag="required"/>

                                </authorization>

                            </security-domain>

                            <security-domain name="jboss-ejb-policy" cache-type="default">

                                <authorization>

                                    <policy-module code="Delegating" flag="required"/>

                                </authorization>

                            </security-domain>

                            <security-domain name="jaspitest" cache-type="default">

                                <authentication-jaspi>

                                    <login-module-stack name="dummy">

                                        <login-module code="Dummy" flag="optional"/>

                                    </login-module-stack>

                                    <auth-module code="Dummy"/>

                                </authentication-jaspi>

                            </security-domain>

                        </security-domains>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:transactions:3.0">

                        <core-environment>

                            <process-id>

                                <uuid/>

                            </process-id>

                        </core-environment>

                        <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>

                        <coordinator-environment default-timeout="420"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:undertow:3.1">

                        <buffer-cache name="default"/>

                        <server name="default-server">

                            <http-listener name="default" socket-binding="http" max-post-size="209715200" allow-equals-in-cookie-value="true" redirect-socket="https" enable-http2="true"/>

                            <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>

                            <host name="default-host" alias="localhost">

                                <location name="/" handler="welcome-content"/>

                                <filter-ref name="server-header"/>

                                <filter-ref name="x-powered-by-header"/>

                                <filter-ref name="limit-connections"/>

                            </host>

                          

                        </server>

                        <servlet-container name="default">

                            <jsp-config/>

                            <websockets/>

                        </servlet-container>

                        <handlers>

                            <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

                        </handlers>

                        <filters>

                            <request-limit name="limit-connections" max-concurrent-requests="170" queue-size="500"/>

                            <response-header name="server-header" header-name="Server" header-value="WildFly/10"/>

                            <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>

                        </filters>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:webservices:2.0">

                        <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

                        <endpoint-config name="Standard-Endpoint-Config"/>

                        <endpoint-config name="Recording-Endpoint-Config">

                            <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                                <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                            </pre-handler-chain>

                        </endpoint-config>

                        <client-config name="Standard-Client-Config"/>

                    </subsystem>

                    <subsystem xmlns="urn:jboss:domain:weld:3.0"/>

                </profile>

             

             

                <interfaces>

                    <interface name="management">

                        <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

                    </interface>

                    <interface name="public">

                        <inet-address value="${jboss.bind.address:127.0.0.1}"/>

                    </interface>

                    <interface name="unsecure">

                        <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

                    </interface>

                </interfaces>

             

             

                <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:500}">

                    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

                    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>

                    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>

                    <socket-binding name="http" port="${jboss.http.port:8080}"/>

                    <socket-binding name="https" port="${jboss.https.port:8443}"/>

                    <socket-binding name="iiop" interface="unsecure" port="3528"/>

                    <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>

                    <socket-binding name="txn-recovery-environment" port="4712"/>

                    <socket-binding name="txn-status-manager" port="4713"/>

                    <socket-binding name="myapp-manager" port="8282"/>

                    <outbound-socket-binding name="mail-smtp">

                        <remote-destination host="localhost" port="25"/>

                    </outbound-socket-binding>

                </socket-binding-group>

             

             

            </server>

             

             

             

             

             

             

             

             

             

             

             

             

            ############################

            PFB Logs.

             

            (pool-14-thread-1) ARJUNA016086: TransactionImple.enlistResource setTransactionTimeout on XAResource < formatI

            d=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a544893:19e7bcc6:5bc8b3a6:23f67, node_name=1, branch_uid=0:ffff0a544893:19e7bcc6:5bc8b3a6:23

            f6a, subordinatenodename=null, eis_name=java:/JmsXA NodeId:cac77c82-375c-11e8-85b0-990d99ece9d8 > threw: XAException.XAER_RMFAIL: javax.transaction.xa

            .XAException

              at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.setTransactionTimeout(ClientSessionImpl.java:1183)

              at org.apache.activemq.artemis.ra.ActiveMQRAXAResource.setTransactionTimeout(ActiveMQRAXAResource.java:242)

              at org.apache.activemq.artemis.service.extensions.xa.ActiveMQXAResourceWrapperImpl.setTransactionTimeout(ActiveMQXAResourceWrapperImpl.java:11

            6)

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:637)

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:423)

              at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.enlist(TxConnectionListener.java:986)

              at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:379)

              at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.managedConnectionReconnected(TxConnectionManagerImpl.java:553)

              at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.reconnectManagedConnection(AbstractConnectionManager.java:928)

              at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:750)

              at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.allocateConnection(ActiveMQRASessionFactoryImpl.java:853)

              at org.apache.activemq.artemis.ra.ActiveMQRASessionFactoryImpl.createQueueSession(ActiveMQRASessionFactoryImpl.java:296)

            Caused by: ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ119010: Connection is destroyed]

              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:322)

              at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:304)

              at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.configureTransactionTimeout(ActiveMQSessionContext.java:512)

              at org.apache.activemq.artemis.core.client.impl.ClientSessionImpl.setTransactionTimeout(ClientSessionImpl.java:1178)

              ... 223 more

             

            --------------------------------------------------------------------------------

            (pool-14-thread-1) AMQ212009: resetting session after failure

            WORKFLOW  2018-10-19 03:24:08,945 WARN  (pool-14-thread-1) AMQ152001: problem resetting xa session after failure: ActiveMQObjectClosedException[errorT

            ype=OBJECT_CLOSED message=AMQ119019: Session is closed]

            • 3. Re: jmsXA session issue while sending a message
              mnovak

              Is this the configuration of remote/target Wildfly server of the JMS bridge? Could you share server.log file of the remote instance?

               

              Thanks,

              Mirek

              • 4. Re: jmsXA session issue while sending a message
                mitul.vora

                JMS bridges are configured with  wildfly(source/destination) server to Jboss Fuse(source/destination) , Oracle ESB(source/destination),Weblogic(source/destination).

                All bridge configuration with the target wildfly server. there is no bridge config on

                • 5. Re: jmsXA session issue while sending a message
                  mnovak

                  Ok, I guess there is a deployment Servlet, EJB or MDB which is trying to send message to queue using java:/JmsXA connection factory. Are there any other WARN/ERRORs in the log. As pooled connection factory is using in-vm connector, it's connected to Artemis inside this Wildfly server.

                   

                  Exception looks like just consequence of another failure. Do you see any other failure before this exception to be thrown.

                   

                  Thanks

                  • 6. Re: jmsXA session issue while sending a message
                    mitul.vora

                    Hi,

                     

                    Yes you are correct a EJB tries to send message. This are the only exception logs.

                    • 7. Re: jmsXA session issue while sending a message
                      mnovak

                      Ok, I think I've figured it out. There is not specified address-settings in your config which means that address-full-policy = BLOCK was used. It means after there is sent 10MB of messages then server starts to block producer from sending message to queue. I believe this resulted in this exception.

                       

                      You should get rid of the problem by adding following:

                        <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" redelivery-delay="0" max-delivery-attempts="10" max-size-bytes="10485760" page-size-bytes="2097152" address-full-policy="PAGE" last-value-queue="false" redistribution-delay="1000"/>

                       

                      to messaging subsystem.

                       

                      Thanks,

                      Mirek

                      • 8. Re: jmsXA session issue while sending a message
                        mitul.vora

                        Hi,

                        I have made changes in my environment to reproduce the above logs.

                        <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" redelivery-delay="0" max-delivery-attempts="10" max-size-bytes="1000" page-size-bytes="2097152" address-full-policy="BLOCK" last-value-queue="false" redistribution-delay="1000"/> 

                         

                        But I was not able to reproduce above logs. I have got below logs:

                         

                        Blocking message production on address 'jms.queue.Response'; size is currently: 1,569 bytes; max-size-bytes: 1,000.

                        • 9. Re: jmsXA session issue while sending a message
                          mnovak

                          Yes, it's something different what is causing it. But adding address-settings did help, right?

                          • 10. Re: jmsXA session issue while sending a message
                            mitul.vora

                            Yes it helps to avoid loss of messages.But still I am finding a solution to my issue.

                            • 11. Re: jmsXA session issue while sending a message
                              mnovak

                              If you provide me your EJB code or reproducer then I'll try reproduce and possibly will find the issue.

                              • 12. Re: jmsXA session issue while sending a message
                                mitul.vora

                                package com.elitecore.cwfe.bl.session.engine.execution.wf;

                                 

                                 

                                import javax.jms.DeliveryMode;

                                import javax.jms.JMSException;

                                import javax.jms.ObjectMessage;

                                import javax.jms.Queue;

                                import javax.jms.QueueConnection;

                                import javax.jms.QueueConnectionFactory;

                                import javax.jms.QueueSender;

                                import javax.jms.QueueSession;

                                import javax.naming.InitialContext;

                                import javax.naming.NamingException;

                                 

                                 

                                import com.elitecore.cwfe.bl.data.engine.execution.wf.process.OrderProcessData;

                                import com.elitecore.cwfe.util.logger.Logger;

                                 

                                 

                                 

                                 

                                public class OrderProcessingQueueHandler {

                                  private static final String MODULE = "OrderProcessingQueueHandler";

                                  private static InitialContext initialContext=getInitialContext();

                                  private static Queue queue;

                                  private static QueueConnectionFactory factory;

                                 

                                  static{

                                  initializeQueue();

                                  }

                                 

                                 

                                 

                                 

                                  /**

                                  * send the given Data as a JMS message to the Order Queue.

                                  */

                                  public static void sendMessage(OrderProcessData orderProcessData) {

                                  QueueSession session=null;

                                  QueueConnection connection=null;

                                  try {

                                  connection = factory.createQueueConnection();

                                  session = connection.createQueueSession(false, QueueSession.DUPS_OK_ACKNOWLEDGE);

                                  ObjectMessage message = session.createObjectMessage();

                                  message.setObject(orderProcessData);

                                  QueueSender sender = session.createSender(queue);

                                  sender.setDisableMessageID(Boolean.TRUE);

                                  sender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

                                  sender.send(message);

                                 

                                 

                                  } catch (Exception e) {

                                  Logger.logError(MODULE, "Error occurred while sending messsage to queue");

                                  Logger.logError(MODULE, e);

                                  }finally {

                                  try {

                                  if (session != null) {

                                  session.close();

                                  }

                                  if (connection != null) {

                                  connection.close();

                                  }

                                  } catch (JMSException e) {

                                  Logger.logError(MODULE, "JMS excetion occured while closing queue connection");

                                  Logger.logError(MODULE, e);

                                  }

                                  }

                                 

                                 

                                  }

                                  protected static final InitialContext getInitialContext()  {

                                  try{

                                  if(initialContext==null){

                                  initialContext=new InitialContext();

                                  }

                                  }catch(Exception e){

                                  Logger.logError(MODULE, e);

                                  }

                                  return initialContext;

                                  }

                                 

                                 

                                  private static void initializeQueue(){

                                  try {

                                  queue = (Queue) initialContext.lookup("jms/queue/OrderProcessingQueue");

                                  factory=(QueueConnectionFactory)initialContext.lookup("java:/JmsXA");

                                  } catch (NamingException e) {

                                  Logger.logError(MODULE, "Error occurred while sending messsage to queue");

                                  Logger.logError(MODULE, e);

                                  }

                                  }

                                }

                                 

                                 

                                It was working since last 10 months and we faced this issue recently. I am not able to reproduce the issue in my lab environment