ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vito <testfor...@163.com>
Subject Re:Re: Re: Re: Re: Re: TransactionManager error when invoking multiple instances on two ODE engines
Date Tue, 18 Mar 2014 06:51:58 GMT
Hi Sathwik,

Thank you for your recommendation. I will try your advice.

Best,
Vito


At 2014-03-18 14:48:00,"Sathwik B P" <sathwik.bp@gmail.com> wrote:
>Hi Vito,
>
>We don't recommed derby for production deployments. It's only to get ODE up
>and running quickly.
>
>It's better to use an external database. The cofiguration for using an
>external database is done in ode-axis2.properties file. Also one needs to
>use an extenal transaction manager within tomcat.
>
>regards,
>sathwik
>
>
>On Mon, Mar 17, 2014 at 11:01 PM, Vito <testforvln@163.com> wrote:
>
>> Hi Sathwik,
>>
>> Actually there is only axis2.xml file under that folder and it's running
>> properly except for my problem with multiple instances. Does it mean that
>> the axis2.xml file can also play the role of ode-axis2.properties?
>>
>> The log of my tomcat servers shows me that some problems went wrong with
>> geronimo transaction manager indeed. So I may also have the default
>> database settings.
>>
>> Best,
>> Vito
>>
>>
>>
>> At 2014-03-18 13:44:56,"Sathwik B P" <sathwik.bp@gmail.com> wrote:
>> >Hi Vito,
>> >
>> >There has to be a file named ode-axis2.properties under
>> >*webapps/ode/WEB-INF/conf*
>> >
>> >FYI, ODE by default uses an embedded derby database with geronimo
>> >transaction manager, unless you change the configuration in
>> >ode-axis2.properties
>> >
>> >Would recommend trying the bundled ode-tomcat suggested by tammo earlier.
>> >
>> >regards,
>> >sathwik
>> >
>> >
>> >On Tue, Mar 18, 2014 at 9:48 AM, Vito <testforvln@163.com> wrote:
>> >
>> >> Hi Sathwik,
>> >>
>> >> I don't have ode-axis2.properties file in my web-inf folder. I have
>> >> axis2.xml file instead.
>> >> The two axis2.xml files content is like below, which only change their
>> >> ports from "8080" to "8180":
>> >> <axisconfig name="AxisJava2.0">
>> >>     <parameter name="hotdeployment" locked="false">true</parameter>
>> >>     <parameter name="hotupdate" locked="false">false</parameter>
>> >>     <parameter name="enableMTOM" locked="false">false</parameter>
>> >>     <parameter name="enableSwA" locked="false">false</parameter>
>> >>     <parameter name="attachmentDIR" locked="false"></parameter>
>> >>     <parameter name="sizeThreshold" locked="false">4000</parameter-->
>> >>     <parameter name="ConfigContextTimeoutInterval"
>> >> locked="false">30</parameter>
>> >>     <parameter name="sendStacktraceDetailsWithFaults"
>> >> locked="false">true</parameter>
>> >>     <parameter name="DrillDownToRootCauseForFaultReason"
>> >> locked="false">true</parameter>
>> >>
>> >>     <parameter name="userName" locked="false">admin</parameter>
>> >>     <parameter name="password" locked="false">axis2</parameter>
>> >>     <parameter name="servicePath" locked="false">processes</parameter>
>> >>     <parameter name="manageTransportSession"
>> >> locked="false">false</parameter>
>> >>     <parameter name="enableRESTInAxis2MainServlet"
>> >> locked="true">true</parameter>
>> >>     <parameter name="disableREST" locked="true">false</parameter>
>> >>     <parameter name="disableSeparateEndpointForREST"
>> >> locked="true">true</parameter>
>> >>     <messageReceivers>
>> >>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
>> >>
>> >>  class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
>> >>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
>> >>
>> >>  class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>> >>     </messageReceivers>
>> >>     <transportReceiver name="http"
>> >>
>> >>  class="org.apache.axis2.transport.http.SimpleHTTPServer">
>> >>         <parameter name="port" locked="false">8080</parameter>
>> >>     </transportReceiver>
>> >>     <transportReceiver name="jms"
>> >> class="org.apache.axis2.transport.jms.JMSListener">
>> >>         <parameter name="myTopicConnectionFactory" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">TopicConnectionFactory</parameter>
>> >>         </parameter>
>> >>
>> >>         <parameter name="myQueueConnectionFactory" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">QueueConnectionFactory</parameter>
>> >>         </parameter>
>> >>
>> >>         <parameter name="default" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">QueueConnectionFactory</parameter>
>> >>         </parameter>
>> >>     </transportReceiver>-->
>> >>
>> >>     <transportSender name="tcp"
>> >>
>> >>  class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
>> >>     <transportSender name="local"
>> >>
>> >>  class="org.apache.axis2.transport.local.LocalTransportSender"/>
>> >>     <transportSender name="http"
>> >>
>> >>  class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>> >>         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>> >>         <parameter name="Transfer-Encoding"
>> >> locked="false">chunked</parameter>
>> >>     </transportSender>
>> >>     <transportSender name="https"
>> >>
>> >>  class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>> >>         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>> >>         <parameter name="Transfer-Encoding"
>> >> locked="false">chunked</parameter>
>> >>     </transportSender>
>> >>     <transportSender name="jms"
>> >>                      class="org.apache.axis2.transport.jms.JMSSender"/>
>> >>     -->
>> >>    <transportSender name="mailto"
>> >> class="org.apache.axis2.transport.mail.MailTransportSender">
>> >>        <parameter name="transport.mail.smtp.host"
>> >> locked="false">127.0.0.1</parameter>
>> >>        <parameter name="transport.mail.smtp.user"
>> >> locked="false">axis2</parameter>
>> >>        <parameter name="transport.mail.smtp.password"
>> >> locked="false">axis2</parameter>
>> >>        <parameter name="transport.mail.smtp.port"
>> >> locked="false">25</parameter>
>> >>    </transportSender>
>> >>    -->
>> >>     <phaseOrder type="InFlow">
>> >>         <!--  System pre defined phases       -->
>> >>         <phase name="Transport">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>> >>             <handler name="SOAPActionBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
>> >>             <handler name="ODEAxisServiceDispatcher"
>> >>
>> >>  class="org.apache.ode.axis2.hooks.ODEAxisServiceDispatcher"/>
>> >>         </phase>
>> >>         <phase name="Security"/>
>> >>         <phase name="Addressing">
>> >>             <handler name="ODEAxisOperationDispatcher"
>> >>
>> >>  class="org.apache.ode.axis2.hooks.ODEAxisOperationDispatcher"/>
>> >>             <handler name="AddressingBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>> >>                 <order phase="Addressing"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="PreDispatch"/>
>> >>         <phase name="Dispatch"
>> >> class="org.apache.axis2.engine.DispatchPhase">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>> >>             <handler name="RequestURIOperationDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
>> >>             <handler name="HTTPLocationBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
>> >>         </phase>
>> >>         <phase name="ProcessHeader">
>> >>             <handler name="SessionInHandler"
>> >>                  class="org.apache.ode.axis2.hooks.SessionInHandler">
>> >>                 <order phase="PostDispatch"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="OperationInPhase"/>
>> >>     <phase name="soapmonitorPhase"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="OutFlow">
>> >>         <!--      user can add his own phases to this area  -->
>> >>     <phase name="ProcessHeader">
>> >>         <handler name="SessionOutHandler"
>> >>              class="org.apache.ode.axis2.hooks.SessionOutHandler">
>> >>             <order phase="PreDispatch"/>
>> >>         </handler>
>> >>     </phase>
>> >>     <phase name="soapmonitorPhase"/>
>> >>         <phase name="OperationOutPhase"/>
>> >>         <phase name="PolicyDetermination"/>
>> >>         <phase name="MessageOut"/>
>> >>         <phase name="Security"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="InFaultFlow">
>> >>         <phase name="Security"/>
>> >>         <phase name="Addressing">
>> >>             <handler name="AddressingBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>> >>                 <order phase="Addressing"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="PreDispatch"/>
>> >>         <phase name="Dispatch"
>> >> class="org.apache.axis2.engine.DispatchPhase">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>
>> >>             <handler name="SOAPActionBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>
>> >>             <handler name="SOAPMessageBodyBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="OperationInFaultPhase"/>
>> >>         <phase name="soapmonitorPhase"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="OutFaultFlow">
>> >>         <!--      user can add his own phases to this area  -->
>> >>         <phase name="soapmonitorPhase"/>
>> >>         <phase name="OperationOutFaultPhase"/>
>> >>         <phase name="PolicyDetermination"/>
>> >>         <phase name="MessageOut"/>
>> >>         <phase name="Security"/>
>> >>     </phaseOrder>
>> >> </axisconfig>
>> >>
>> >>
>> >>
>> >> <axisconfig name="AxisJava2.0">
>> >>     <parameter name="hotdeployment" locked="false">true</parameter>
>> >>     <parameter name="hotupdate" locked="false">false</parameter>
>> >>     <parameter name="enableMTOM" locked="false">false</parameter>
>> >>     <parameter name="enableSwA" locked="false">false</parameter>
>> >>     <parameter name="attachmentDIR" locked="false"></parameter>
>> >>     <parameter name="sizeThreshold" locked="false">4000</parameter-->
>> >>     <parameter name="ConfigContextTimeoutInterval"
>> >> locked="false">30</parameter>
>> >>     <parameter name="sendStacktraceDetailsWithFaults"
>> >> locked="false">true</parameter>
>> >>     <parameter name="DrillDownToRootCauseForFaultReason"
>> >> locked="false">true</parameter>
>> >>
>> >>     <parameter name="userName" locked="false">admin</parameter>
>> >>     <parameter name="password" locked="false">axis2</parameter>
>> >>     <parameter name="servicePath" locked="false">processes</parameter>
>> >>     <parameter name="manageTransportSession"
>> >> locked="false">false</parameter>
>> >>     <parameter name="enableRESTInAxis2MainServlet"
>> >> locked="true">true</parameter>
>> >>     <parameter name="disableREST" locked="true">false</parameter>
>> >>     <parameter name="disableSeparateEndpointForREST"
>> >> locked="true">true</parameter>
>> >>     <messageReceivers>
>> >>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
>> >>
>> >>  class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
>> >>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
>> >>
>> >>  class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>> >>     </messageReceivers>
>> >>     <transportReceiver name="http"
>> >>
>> >>  class="org.apache.axis2.transport.http.SimpleHTTPServer">
>> >>         <parameter name="port" locked="false">8180</parameter>
>> >>     </transportReceiver>
>> >>     <transportReceiver name="jms"
>> >> class="org.apache.axis2.transport.jms.JMSListener">
>> >>         <parameter name="myTopicConnectionFactory" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">TopicConnectionFactory</parameter>
>> >>         </parameter>
>> >>
>> >>         <parameter name="myQueueConnectionFactory" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">QueueConnectionFactory</parameter>
>> >>         </parameter>
>> >>
>> >>         <parameter name="default" locked="false">
>> >>             <parameter name="java.naming.factory.initial"
>> >>
>> locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>> >>             <parameter name="java.naming.provider.url"
>> >> locked="false">tcp://localhost:61616</parameter>
>> >>             <parameter name="transport.jms.ConnectionFactoryJNDIName"
>> >> locked="false">QueueConnectionFactory</parameter>
>> >>         </parameter>
>> >>     </transportReceiver>-->
>> >>
>> >>     <transportSender name="tcp"
>> >>
>> >>  class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
>> >>     <transportSender name="local"
>> >>
>> >>  class="org.apache.axis2.transport.local.LocalTransportSender"/>
>> >>     <transportSender name="http"
>> >>
>> >>  class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>> >>         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>> >>         <parameter name="Transfer-Encoding"
>> >> locked="false">chunked</parameter>
>> >>     </transportSender>
>> >>     <transportSender name="https"
>> >>
>> >>  class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>> >>         <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
>> >>         <parameter name="Transfer-Encoding"
>> >> locked="false">chunked</parameter>
>> >>     </transportSender>
>> >>     <transportSender name="jms"
>> >>                      class="org.apache.axis2.transport.jms.JMSSender"/>
>> >>     -->
>> >>    <transportSender name="mailto"
>> >> class="org.apache.axis2.transport.mail.MailTransportSender">
>> >>        <parameter name="transport.mail.smtp.host"
>> >> locked="false">127.0.0.1</parameter>
>> >>        <parameter name="transport.mail.smtp.user"
>> >> locked="false">axis2</parameter>
>> >>        <parameter name="transport.mail.smtp.password"
>> >> locked="false">axis2</parameter>
>> >>        <parameter name="transport.mail.smtp.port"
>> >> locked="false">25</parameter>
>> >>    </transportSender>
>> >>    -->
>> >>     <phaseOrder type="InFlow">
>> >>         <!--  System pre defined phases       -->
>> >>         <phase name="Transport">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>> >>             <handler name="SOAPActionBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
>> >>             <handler name="ODEAxisServiceDispatcher"
>> >>
>> >>  class="org.apache.ode.axis2.hooks.ODEAxisServiceDispatcher"/>
>> >>         </phase>
>> >>         <phase name="Security"/>
>> >>         <phase name="Addressing">
>> >>             <handler name="ODEAxisOperationDispatcher"
>> >>
>> >>  class="org.apache.ode.axis2.hooks.ODEAxisOperationDispatcher"/>
>> >>             <handler name="AddressingBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>> >>                 <order phase="Addressing"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="PreDispatch"/>
>> >>         <phase name="Dispatch"
>> >> class="org.apache.axis2.engine.DispatchPhase">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>> >>             <handler name="RequestURIOperationDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
>> >>             <handler name="HTTPLocationBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
>> >>         </phase>
>> >>         <phase name="ProcessHeader">
>> >>             <handler name="SessionInHandler"
>> >>                  class="org.apache.ode.axis2.hooks.SessionInHandler">
>> >>                 <order phase="PostDispatch"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="OperationInPhase"/>
>> >>     <phase name="soapmonitorPhase"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="OutFlow">
>> >>         <!--      user can add his own phases to this area  -->
>> >>     <phase name="ProcessHeader">
>> >>         <handler name="SessionOutHandler"
>> >>              class="org.apache.ode.axis2.hooks.SessionOutHandler">
>> >>             <order phase="PreDispatch"/>
>> >>         </handler>
>> >>     </phase>
>> >>     <phase name="soapmonitorPhase"/>
>> >>         <phase name="OperationOutPhase"/>
>> >>         <phase name="PolicyDetermination"/>
>> >>         <phase name="MessageOut"/>
>> >>         <phase name="Security"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="InFaultFlow">
>> >>         <phase name="Security"/>
>> >>         <phase name="Addressing">
>> >>             <handler name="AddressingBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>> >>                 <order phase="Addressing"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="PreDispatch"/>
>> >>         <phase name="Dispatch"
>> >> class="org.apache.axis2.engine.DispatchPhase">
>> >>             <handler name="RequestURIBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>
>> >>             <handler name="SOAPActionBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>
>> >>             <handler name="SOAPMessageBodyBasedDispatcher"
>> >>
>> >>  class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher">
>> >>                 <order phase="Dispatch"/>
>> >>             </handler>
>> >>         </phase>
>> >>         <phase name="OperationInFaultPhase"/>
>> >>         <phase name="soapmonitorPhase"/>
>> >>     </phaseOrder>
>> >>     <phaseOrder type="OutFaultFlow">
>> >>         <!--      user can add his own phases to this area  -->
>> >>         <phase name="soapmonitorPhase"/>
>> >>         <phase name="OperationOutFaultPhase"/>
>> >>         <phase name="PolicyDetermination"/>
>> >>         <phase name="MessageOut"/>
>> >>         <phase name="Security"/>
>> >>     </phaseOrder>
>> >> </axisconfig>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> At 2014-03-14 17:20:20,"Sathwik B P" <sathwik.bp@gmail.com> wrote:
>> >> >Hi Vito,
>> >> >
>> >> >Can you share ode-axis2.properties file from both the tomcat servers
to
>> >> >understand your deployment.
>> >> >
>> >> >regards,
>> >> >sathwik
>> >> >
>> >> >
>> >> >On Fri, Mar 14, 2014 at 7:38 AM, Vito <testforvln@163.com> wrote:
>> >> >
>> >> >> Hi Tammo,
>> >> >>
>> >> >> Thank you for your explanation and advice. Actually I deployed
the
>> two
>> >> ODE
>> >> >> engines in two tomcat servers of different ports. So if I want
to
>> >> invoke,
>> >> >> for example, 15 instances in ode1 and 15 instances in ode2, the
>> requests
>> >> >> have their difference in the ports of their addresses. The question
>> is,
>> >> in
>> >> >> this circumstance, do the two ode engines share the same database
>> >> instance
>> >> >> when they run in two tomcat servers? I use the internal jpa database.
>> >> >>
>> >> >>
>> >> >> Best,
>> >> >> Vito
>> >> >>
>> >> >>
>> >> >> At 2014-03-13 19:23:10,"Tammo van Lessen" <tvanlessen@gmail.com>
>> wrote:
>> >> >> >Hi Vito,
>> >> >> >
>> >> >> >it doesn't matter if they share the same JVM but if they share
the
>> same
>> >> >> >data in the database, then you will run into trouble unless
you
>> solve
>> >> some
>> >> >> >issues needed for clustering. The background is the following:
If
>> ODE
>> >> >> >receives a request, it loads the instance, determines the next
steps
>> >> and
>> >> >> >adds a new entry to the scheduler table for tasks that requires
>> heavier
>> >> >> >work. In a cluster you need to make sure that this scheduled
job is
>> >> >> >assigned to a single node and not taken up by all nodes. The
>> scheduler
>> >> is
>> >> >> >ready to do that, but the missing piece is the cluster management
>> that
>> >> >> >assigns IDs to nodes etc. This can be implemented with hazelcast
for
>> >> >> >instance.
>> >> >> >
>> >> >> >As a side note: When you use an external database, it is important
>> that
>> >> >> you
>> >> >> >have properly configured the transactions manager, either by
using
>> >> >> >https://github.com/vanto/apache-ode-tomcat-bundle or by following
>> the
>> >> >> >Sathwik's instructions at
>> >> >> >
>> >> >>
>> >>
>> http://sathwikbp.blogspot.de/2013/09/apache-ode-on-tomcat-7-with-bitronix.html
>> >> >> ,
>> >> >> >this could help as well.
>> >> >> >
>> >> >> >HTH,
>> >> >> >  Tammo
>> >> >> >
>> >> >> >
>> >> >> >On Wed, Mar 12, 2014 at 2:49 AM, Vito <testforvln@163.com>
wrote:
>> >> >> >
>> >> >> >> Hi Tammo,
>> >> >> >>
>> >> >> >> Yes, both instances are nearly the same except for their
different
>> >> >> >> deployment port number, because they need to be deployed
in the
>> two
>> >> ODE
>> >> >> of
>> >> >> >> different ports.
>> >> >> >> Do you mean that they share the same jvm and database
instance? It
>> >> can
>> >> >> >> really cause some problem.
>> >> >> >> Actually I'm doing some work trying to implement simple
load
>> balance
>> >> >> >> between different ODE instances, but it's just a external
>> >> implementation
>> >> >> >> without using any features of ODE cluster, which I'm not
familiar
>> >> with.
>> >> >> >>
>> >> >> >>
>> >> >> >> Best,
>> >> >> >> Vito
>> >> >> >>
>> >> >> >>
>> >> >> >> At 2014-03-11 20:35:29,"Tammo van Lessen" <tvanlessen@gmail.com>
>> >> wrote:
>> >> >> >> >Hi Vito,
>> >> >> >> >
>> >> >> >> >do both instances share the same database schema?
>> >> >> >> >
>> >> >> >> >ODE is currently not able to run in a cluster. Actually
it is in
>> >> >> general
>> >> >> >> >ready for clustering but two pieces of glue code are
missing. 1)
>> the
>> >> >> load
>> >> >> >> >balance, 2) the master slave management that is needed
for the
>> >> >> scheduler
>> >> >> >> >and the process store. Thus, without a not-too-small
amount of
>> >> >> developer
>> >> >> >> >work its currently not possible to setup a cluster
based on open
>> >> source
>> >> >> >> >ODE. Also, ODE then assumes that the process definitions
are the
>> >> same
>> >> >> >> >across all instances within the cluster.
>> >> >> >> >
>> >> >> >> >Or did I get your question wrong?
>> >> >> >> >
>> >> >> >> >Tammo
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >On Tue, Mar 11, 2014 at 9:44 AM, Vito <testforvln@163.com>
>> wrote:
>> >> >> >> >
>> >> >> >> >>  Hi all, I'm trying to invoke multiple instances
on two ODE
>> >> engines.
>> >> >> >> >> I deployed the two engines in two tomcat servers
of different
>> >> ports
>> >> >> in
>> >> >> >> the
>> >> >> >> >> same computer. Then invoked 15 same process instances
on each
>> ODE
>> >> >> >> engine,
>> >> >> >> >> and the two process definitions for the two engines
are not the
>> >> same.
>> >> >> >> When
>> >> >> >> >> I invoked them all, the first engine went well,
but the
>> instances
>> >> on
>> >> >> the
>> >> >> >> >> second engine sometimes worked well, sometimes
it threw
>> exception
>> >> >> like
>> >> >> >> >> below:
>> >> >> >> >>
>> >> >> >> >> 16:28:01,939 WARN  [Transaction] Unexpected exception
from
>> >> >> >> >> beforeCompletion; transaction will roll back
>> >> >> >> >> <openjpa-1.2.1-r752877:753278 nonfatal user
error>
>> >> >> >> >> org.apache.openjpa.persistence.InvalidStateException:
Attempt
>> to
>> >> >> commit
>> >> >> >> a
>> >> >> >> >> null javax.transaction.Transaction.  Some application
servers
>> set
>> >> the
>> >> >> >> >> transaction to null if a rollback occurs.
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerImpl.java:1490)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1476)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:925)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly(EntityManagerImpl.java:560)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.persistence.PersistenceExceptions$2.translate(PersistenceExceptions.java:71)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionException(BrokerImpl.java:1896)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1830)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:498)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:238)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:291)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:512)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:496)
>> >> >> >> >>     at
>> >> >> >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>> >> >> >> >>     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> >> >> >> >>     at
>> >> >> >> >>
>> >> >> >>
>> >> >>
>> >>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> >> >> >> >>     at java.lang.Thread.run(Thread.java:662)
>> >> >> >> >>
>> >> >> >> >> BTW after the error the instances can still go
on to the normal
>> >> end.
>> >> >> >> Maybe
>> >> >> >> >> the rollback saved the instance.
>> >> >> >> >> It seems that something went wrong with the transaction
>> manager.
>> >> >> Could
>> >> >> >> you
>> >> >> >> >> help me figure out how this error came out?
>> >> >> >> >> Best,
>> >> >> >> >> Vito
>> >> >> >> >>
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >--
>> >> >> >> >Tammo van Lessen - http://www.taval.de
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >--
>> >> >> >Tammo van Lessen - http://www.taval.de
>> >> >>
>> >>
>>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message