JBoss Community

Re: close jms conection cause block

created by Ivan Nushev in JBoss Messaging - View the full discussion

Hi all. Just to add that I succeeded to make remote JMS MessageListeners reliable using sslservlet remoting transport. To achieve this goal I use the remoting servlet configuration packed in JBM 1.4.6.GA.SP1:

http://anonsvn.jboss.org/repos/messaging/tags/JBossMessaging_1_4_6_GA_SP1/integration/AS5/etc/remoting/remoting-servlet-service.xml

plus a few settings for SSL flavour and a JMS Connection' javax.jms.ExceptionListener which recreate the JMS Connection and Topic subscription in case of connection exception. I attach the exact configuration used:

 

<mbean code="org.jboss.remoting.transport.Connector"

    name="jboss.remoting:service=connector,transport=sslservlet,target=jms,loc=public"

    display-name="JMS Public Servlet transport Connector">

    <attribute name="Configuration">

        <config>

            <invoker transport="sslservlet">

                <!-- There should be no reason to change these parameters - warning!

                    Changing them may stop JBoss Messaging working correctly -->

                <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

                <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>

                <attribute name="dataType" isParam="true">jms</attribute>

                <attribute name="serverBindAddress">${jboss.bind.address}</attribute>

                <attribute name="serverBindPort">443</attribute>

                <attribute name="clientConnectAddress">${public.firewall.address}</attribute>

                <attribute name="clientConnectPort">443</attribute>

                <attribute name="numberOfCallRetries" isParam="true">1</attribute>

                <attribute name="pingFrequency" isParam="true">214748364</attribute>

                <attribute name="pingWindowFactor" isParam="true">10</attribute>

                <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>

                <attribute name="callbackStore">org.jboss.remoting.callback.BlockingCallbackStore</attribute>

                <attribute name="unwrapSingletonArrays">true</attribute>

                <attribute name="path">unified-invoker/PublicJmsServerInvokerServlet</attribute>

                <attribute name="return-exception">true</attribute>

                <attribute name="createUniqueObjectName">true</attribute>

                <attribute name="useAllParams" isParam="true">true</attribute>

                <!-- End immutable parameters -->

 

                <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>

 

                <!-- Periodicity of client pings. Server window by default is twice this figure -->

                <attribute name="clientLeasePeriod" isParam="true">10000</attribute>

                <attribute name="validatorPingPeriod" isParam="true">10000</attribute>

                <attribute name="validatorPingTimeout" isParam="true">5000</attribute>

 

                <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>

                <attribute name="callbackErrorsAllowed">1</attribute>

                <attribute name="registerCallbackListener">false</attribute>

                <attribute name="useClientConnectionIdentity" isParam="true">true

                </attribute>

 

                <attribute name="timeout" isParam="true">0</attribute>

 

                <!-- Max Number of connections in client pool. This should be significantly

                    higher than the max number of sessions/consumers you expect -->

                <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>

 

                <!-- Set this to true if you want the servlet transport to block waiting

                    for server->client traffic. Or false if you want it to poll for new traffic

                    periodically. Recommended is blocking -->

                <attribute name="blockingMode" isParam="true">blocking</attribute>

 

                <!-- Timeout for blocking. Only has relevance if blockingMode = blocking -->

                <attribute name="blockingTimeout" isParam="true">30000</attribute>

 

                <!-- The periodicity of polling. Only has relevance if blockingMode = nonblocking -->

                <!--attribute name="callbackPollPeriod" isParam="true">10000</attribute -->

            </invoker>

            <handlers>

                <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler

                </handler>

            </handlers>

        </config>

    </attribute>

</mbean>

Reply to this message by going to Community

Start a new discussion in JBoss Messaging at Community