Strangely, the situation is a bit complicated:

In a prior test I received messages that the broker could not start a thread
due to not having enough heap available. It would not even shutdown, because
it could not start the shutdown thread. Eventually the broker got killed,
which then was taken over by the backup.

After this test, I manually removed all queues, but did not delete the
journals. Also, I changed artemis.profile to use 4096M heap (up from 1024).

All producers and consumers were stopped prior to the removal of all the
queues. The producers and consumers were started and the test repeated... 

The test setup is like this:
- We use servicemix to provide the webservice(s), like this blueprint:
<blueprint
        xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:camel="http://camel.apache.org/schema/blueprint";
        xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf";
        xsi:schemaLocation="
                http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
                http://camel.apache.org/schema/blueprint/cxf
http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd
                http://camel.apache.org/schema/blueprint 
http://camel.apache.org/schema/blueprint/camel-blueprint.xsd";>

        <reference id="broker1" interface="javax.jms.ConnectionFactory"
filter="(osgi.jndi.service.name=jms/broker1)" />

        <camelContext xmlns="http://camel.apache.org/schema/blueprint";
id="Webservices"
xmlns:ns="http://my.test/webservices/perform_load_test_request/1";>
                <route id="ULT3-Incoming" streamCache="true">
                        <from
uri="cxf:bean:MyLoadTest_Endpoint?dataFormat=PAYLOAD"
id="PerformLoadTest3-Webservice"/>
                        <transacted />
                        <to
uri="activemq:my.test.queue?connectionFactory=broker1&amp;jmsMessageType=Text"
id="PerformLoadTestTest3-ToQueue"/>
                </route>
        </camelContext>

        <cxf:cxfEndpoint id="MyLoadTest_Endpoint"
wsdlURL="wsdl/perform_load_test_1.1.wsdl"
address="http://0.0.0.0:8383/webservices/perform_load_test_01"; />
</blueprint>

the broker connection is setup like this:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";>

    <bean id="activemqConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL"
value="failover:(tcp://brokerhost1:10010,tcp://brokerhost2:10010)" />
        <property name="userName" value="xxxxx" />
        <property name="password" value="yyyyy" />
    </bean>

    <bean id="pooledConnectionFactory"
class="org.apache.activemq.pool.PooledConnectionFactory">
        <property name="maxConnections" value="8" />
        <property name="connectionFactory" ref="activemqConnectionFactory"
/>
    </bean>

    <bean id="resourceManager"
class="org.apache.activemq.pool.ActiveMQResourceManager"
init-method="recoverResource">
        <property name="transactionManager" ref="transactionManager" />
        <property name="connectionFactory" ref="activemqConnectionFactory"
/>
        <property name="resourceName" value="activemq.localhost" />
    </bean>

    <reference id="transactionManager"
interface="javax.transaction.TransactionManager" />

    <service ref="pooledConnectionFactory"
interface="javax.jms.ConnectionFactory">
        <service-properties>
            <entry key="name" value="broker1" />
            <entry key="osgi.jndi.service.name" value="jms/broker1" />
        </service-properties>
    </service>

</blueprint>

This producer seems to do the job fine. The consumers/producers are running
in a separate java process that uses code I have only limited influence
upon, but I reckon each process has it's own (1) session with "many" (in the
case of this process 40) threads.

I see this message (Could not locate page transaction) only on the 1st
queue, but do not seem to loose any messages. (That's good, reliability
takes precedence over performance, although performance is quite important
as well)

Could the message also happen due to the default prefetch of 1000 messages? 
Is there actually any harm?
Should I increase the global-max-size directive in broker.xml? And is 400MB
(I reckon the value is in KB, so the default is 100MB) the safe choice with
a 4GB heap?



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Artemis-1-5-1-org-apache-activemq-artemis-core-server-AMQ222029-Could-not-locate-page-transaction-med-tp4721587p4721634.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to