Hi Nandika, Thank you for your information. I'm not intending to running instances in multi-cores but multiple instances of the same definition in two separration machine. I'll take a look at the InstanceLockManager.
Regards, Vito At 2014-03-18 15:04:09,"Nandika Jayawardana" <[email protected]> wrote: >Hi Vito, > >If you are using the openjpa persistence layer and running correlated >processes, then you have to consider the instance lock manager which is >only supporting single node at the moment. > >https://svn.apache.org/repos/asf/ode/branches/ode-1.3.6.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engineInstanceLockManagerger.java > >Regards >Nandika > > >On Tue, Mar 18, 2014 at 12:21 PM, Vito <[email protected]> wrote: > >> Hi Sathwik, >> >> Thank you for your recommendation. I will try your advice. >> >> Best, >> Vito >> >> >> At 2014-03-18 14:48:00,"Sathwik B P" <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]> 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" <[email protected]> >> >> 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 <[email protected]> >> 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" < >> [email protected]> >> >> >> 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 <[email protected]> >> >> 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 >> >> >> >> >> >> >> >> >> >>
