[JBossWS] - Response time peaks (jboss 4.2/jbossws 1.2.1)
by gbc@gmx.de
Hi @ all,
We're using above environment on two servers with different applications deployed (one EJB3, other EJB3/Seam2). Communication takes place between both servers via webservice calls and we noticed peaks of response times while testing our server functions and the calls between them:
One interessting peak occours regulary every 12 minutes:
- Avarege time: 2 seconds (a PDF along with some data is being transferred)
- Peak time: 20s (right after server start) up to 2 minutes (after two hours of load) and thus breaking our webservice timeout!
I load tested with SoapUI to on a simple isAlive webmethod on both servers and it gives me the same behavoir, so its repeatable at our environment (tested 60 seconds with 1 thread):
server 1:
Avarage time: 12 ms
Peak time: 300 ms
server 2:
Avarage time: 7 ms
Peak time: 150 ms
So the implementation does not really matter IMHO. For our SLAs we need to deliver webservice response within reasonable response times, for example isAlive must complete in less than 100ms in every single threaded case, so we have some puffer left for concurrent access with an average response time of around 10-15ms.
Does anybody have experiences with such a situation, any hints where to look for answers/information? I tried googling and searching this forums but did not find an answer.
Thank you for your help,
best regards
Gerhard Balthasar
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128329#4128329
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128329
18 years, 2 months
[Installation, Configuration & DEPLOYMENT] - Unable to start multiple instances of ATG on JBOSS 4.0.5
by wmt2007
We are trying to run multiple instances of JBOSS 4.0.5 on the same machine and are running into port conflict problems.
For configuring multiple instances, we have followed instructions from the JBOSS documentation :
http://docs.jboss.org/jbossas/guides/j2eeguide/r2/en/html/ch08.html#ch10.....
We setup two instances of JBOSS called atginstance1 and atginstance 2
The bindings xml for atginstance 1 is as below:
<service-bindings>
<!-- EJB3 Remoting Connector ejb3.deployer/META-INF/jboss-service.xml -->
<service-config
name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config>
socket://${jboss.bind.address}:3973</attribu
te>
</delegate-config>
</service-config>
<!-- ********************* jboss-service.xml ****************** -->
<service-config name="jboss:service=Naming"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port" hostName="BindAddress">
1198
</delegate-config>
</service-config>
<service-config name="jboss:service=WebService"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port"/>
</service-config>
<service-config name="jboss:service=invoker,type=jrmp"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="RMIObjectPort"/>
</service-config>
<service-config name="jboss:service=invoker,type=pooled"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* cluster-service.xml **************** -->
<service-config name="jboss:service=HAJNDI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="Port" hostName="BindAddress">
1201
</delegate-config>
</service-config>
<service-config name="jboss:service=invoker,type=jrmpha"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="RMIObjectPort"/>
</service-config>
<service-config name="jboss:service=invoker,type=pooledha"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* jmx-rmi-adaptor.sar **************** -->
<service-config name="jboss.jmx:type=Connector,name=RMI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="RMIObjectPort"/>
</service-config>
<!-- ********************* jbossmq-service.xml **************** -->
<!-- JMS related services -->
<service-config name="jboss.mq:service=InvocationLayer,type=UIL2"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* jbossmq-httpil.sar **************** -->
<service-config name="jboss.mq:service=InvocationLayer,type=HTTP"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="URLPort"/>
</service-config>
<!-- ********************* hajndi-jms-ds.xml **************** -->
<!-- The JMS provider loader -->
<service-config
name="jboss.mq:service=JMSProviderLoader,name=HAJNDIJMSProvider"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<!--
MAKE SURE java.naming.provider.url
PORT IS SAME AS HA-JNDI ABOVE !!!
-->
<delegate-config>
<![CDATA[
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=${jboss.bind.address:localhost}:1200
jnp.disableDiscovery=false
jnp.partitionName=${jboss.partition.name:DefaultPartition}
jnp.discoveryGroup=${jboss.partition.udpGroup:230.0.0.4}
jnp.discoveryPort=1102
jnp.discoveryTTL=16
jnp.discoveryTimeout=5000
jnp.maxRetries=1
]]>
</delegate-config>
<!-- NOTE: YOU MUST ADD THIS ELEMENT, BUT THE VALUE DOESN'T MATTER
BE SURE THE CORRECT VALUE IS IN java.naming.provider.url ABOVE -->
</service-config>
<!-- **************** http-invoker.sar & httpha-invoker.sar***************
-->
<!-- EJBInvoker -->
<service-config name="jboss:service=invoker,type=http"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/EJBInvokerServlet</attribute&
#62;
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- JMXInvoker -->
<service-config name="jboss:service=invoker,type=http,target=Naming"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/JMXInvokerServlet</attribute&
#62;
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- readonly JMXInvoker -->
<service-config
name="jboss:service=invoker,type=http,target=Naming,readonly=true"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/readonly/JMXInvokerServlet</a
ttribute>
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- **************** httpha-invoker.sar*************** -->
<!-- EJBInvokerHA -->
<service-config name="jboss:service=invoker,type=httpHA"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/EJBInvokerHAServlet</attribut
e>
</delegate-config>
</service-config>
<!-- JMXInvokerHA -->
<service-config name="jboss:service=invoker,type=http,target=HAJNDI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/JMXInvokerHAServlet</attribut
e>
</delegate-config>
</service-config>
<!-- ********************* jboss-ws4ee.sar **************** -->
<!-- Web Service related services -->
<service-config name="jboss.ws4ee:service=AxisService"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="WebServicePort"
hostName="WebServiceHost"/>
</service-config>
<!-- ********************* tomcat ********************** -->
<service-config name="jboss.web:service=WebServer"
delegateClass="org.jboss.services.binding.XSLTFileDelegate"
>
<delegate-config>
<xslt-config configName="ConfigFile"><![CDATA[
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<xsl:output method="xml" />
<xsl:param name="port"/>
<xsl:variable name="portAJP" select="$port - 71"/>
<xsl:variable name="portHttps" select="$port + 363"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match = "Connector">
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="(name() = 'port' and . =
'8180')">
<xsl:attribute name="port"><xsl:value-of
select="$port" /></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'port' and . =
'8009')">
<xsl:attribute name="port"><xsl:value-of
select="$portAJP" /></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'redirectPort')">
<xsl:attribute
name="redirectPort"><xsl:value-of select="$portHttps"
/></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'port' and . =
'8443')">
<xsl:attribute name="port"><xsl:value-of
select="$portHttps" /></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="{name()}"><xsl:value-of
select="." /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</xslt-config>
</delegate-config>
</service-config>
<!-- ********************* jboss messaging ********************** -->
<service-config
name="jboss.messaging:service=Connector,transport=socket"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config>
socket://${jboss.bind.address}:4557/?dataType=jm
s&serializationtype=jms&timeout=0&leasePeriod=20000&socket.check_connectio
n=false&marshaller=org.jboss.jms.server.remoting.JMSWireFormat&unmarshaller=org.jb
oss.jms.server.remoting.JMSWireFormat
</delegate-config>
</service-config>
</service-bindings>
The bindings xml for atginstance 2 is as below:
<!--
$Id: sample-bindings.xml 57311 2006-09-30 18:55:12Z dimitris(a)jboss.org $
<service-bindings>
<!-- ********************************************************** -->
<!-- * atginstance2 * -->
<!-- ********************************************************** -->
<!-- EJB3 Remoting Connector ejb3.deployer/META-INF/jboss-service.xml -->
<service-config
name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config>
socket://${jboss.bind.address}:4073</attribu
te>
</delegate-config>
</service-config>
<!-- ********************* jboss-service.xml ****************** 1298 1299
4644-->
<service-config name="jboss:service=Naming"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port" hostName="BindAddress">
0
</delegate-config>
</service-config>
<service-config name="jboss:service=WebService"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port"/>
</service-config>
<service-config name="jboss:service=invoker,type=jrmp"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="RMIObjectPort"/>
</service-config>
<service-config name="jboss:service=invoker,type=pooled"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* cluster-service.xml **************** 1301 1300 4644
-->
<service-config name="jboss:service=HAJNDI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="Port" hostName="BindAddress">
0
</delegate-config>
</service-config>
<service-config name="jboss:service=invoker,type=jrmpha"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="RMIObjectPort"/>
</service-config>
<service-config name="jboss:service=invoker,type=pooledha"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* iiop-service.xml ****************** -->
<service-config name="jboss:service=CorbaORB"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port"/>
</service-config>
<!-- ********************* jmx-rmi-adaptor.sar **************** 19201 -->
<service-config name="jboss.jmx:type=Connector,name=RMI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="RMIObjectPort"/>
</service-config>
<!-- ********************* snmp-adaptor.sar ****************** -->
<service-config
name="jboss.jmx:name=SnmpAgent,service=trapd,type=logger"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port"/>
</service-config>
<service-config
name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port"/>
</service-config>
<!-- ********************* jbossmq-service.xml **************** -->
<!-- JMS related services -->
<service-config name="jboss.mq:service=InvocationLayer,type=UIL2"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="ServerBindPort"/>
</service-config>
<!-- ********************* jbossmq-httpil.sar **************** -->
<service-config name="jboss.mq:service=InvocationLayer,type=HTTP"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="URLPort"/>
</service-config>
<!-- ********************* hajndi-jms-ds.xml **************** -->
<!-- The JMS provider loader -->
<service-config
name="jboss.mq:service=JMSProviderLoader,name=HAJNDIJMSProvider"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<!--
MAKE SURE java.naming.provider.url
PORT IS SAME AS HA-JNDI ABOVE !!!
-->
<delegate-config>
<![CDATA[
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=${jboss.bind.address:localhost}:1300
jnp.disableDiscovery=false
jnp.partitionName=${jboss.partition.name:DefaultPartition}
jnp.discoveryGroup=${jboss.partition.udpGroup:230.0.0.4}
jnp.discoveryPort=1102
jnp.discoveryTTL=16
jnp.discoveryTimeout=5000
jnp.maxRetries=1
]]>
</delegate-config>
<!-- NOTE: YOU MUST ADD THIS ELEMENT, BUT THE VALUE DOESN'T MATTER
BE SURE THE CORRECT VALUE IS IN java.naming.provider.url ABOVE -->
</service-config>
<!-- **************** http-invoker.sar & httpha-invoker.sar***************
-->
<!-- EJBInvoker -->
<service-config name="jboss:service=invoker,type=http"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/EJBInvokerServlet</attribute&
#62;
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- JMXInvoker -->
<service-config name="jboss:service=invoker,type=http,target=Naming"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/JMXInvokerServlet</attribute&
#62;
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- readonly JMXInvoker -->
<service-config
name="jboss:service=invoker,type=http,target=Naming,readonly=true"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/readonly/JMXInvokerServlet</a
ttribute>
</delegate-config>
<!--
MUST BE THE SAME AS
TOMCAT HTTP CONNECTOR BELOW !!!
-->
</service-config>
<!-- **************** httpha-invoker.sar*************** -->
<!-- EJBInvokerHA -->
<service-config name="jboss:service=invoker,type=httpHA"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/EJBInvokerHAServlet</attribut
e>
</delegate-config>
</service-config>
<!-- JMXInvokerHA -->
<service-config name="jboss:service=invoker,type=http,target=HAJNDI"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config>
:${port}/invoker/JMXInvokerHAServlet</attribut
e>
</delegate-config>
</service-config>
<!-- ********************* jboss-ws4ee.sar **************** -->
<!-- Web Service related services -->
<service-config name="jboss.ws4ee:service=AxisService"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="WebServicePort"
hostName="WebServiceHost"/>
</service-config>
<!-- ********************* hsqldb-ds.xml ********************** -->
<!-- Hypersonic related services
Only if using TCP setup (local file setup by default)
<service-config
name="jboss.jca:service=ManagedConnectionFactory,name=DefaultDS"
delegateClass="org.jboss.services.binding.XSLTConfigDelegate"
>
<delegate-config>
<xslt-config
configName="ManagedConnectionFactoryProperties"><![CDATA[
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<xsl:output method="xml" />
<xsl:param name="host"/>
<xsl:param name="port"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template
match="config-property[@name='ConnectionURL']">
<config-property type="java.lang.String"
name="ConnectionURL">jdbc:hsqldb:hsql://<xsl:value-of
select='$host'/>:<xsl:value-of
select='$port'/></config-property>
</xsl:template>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</xslt-config>
</delegate-config>
</service-config>
<service-config name="jboss:service=Hypersonic"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate"
>
<delegate-config portName="Port" />
</service-config>
-->
<!-- ********************* tomcat ***************** -->
<service-config name="jboss.web:service=WebServer"
delegateClass="org.jboss.services.binding.XSLTFileDelegate"
>
<delegate-config>
<xslt-config configName="ConfigFile"><![CDATA[
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>
<xsl:output method="xml" />
<xsl:param name="port"/>
<xsl:variable name="portAJP" select="$port - 71"/>
<xsl:variable name="portHttps" select="$port + 363"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match = "Connector">
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="(name() = 'port' and . =
'8280')">
<xsl:attribute name="port"><xsl:value-of
select="$port" /></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'port' and . =
'8009')">
<xsl:attribute name="port"><xsl:value-of
select="$portAJP" /></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'redirectPort')">
<xsl:attribute
name="redirectPort"><xsl:value-of select="$portHttps"
/></xsl:attribute>
</xsl:when>
<xsl:when test="(name() = 'port' and . =
'8443')">
<xsl:attribute name="port"><xsl:value-of
select="$portHttps" /></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="{name()}"><xsl:value-of
select="." /></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</xslt-config>
</delegate-config>
</service-config>
<!-- ********************* jboss messaging ********************** -->
<service-config
name="jboss.messaging:service=Connector,transport=socket"
delegateClass="org.jboss.services.binding.AttributeMappingDelegate">
<delegate-config>
socket://${jboss.bind.address}:4657/?dataType=jm
s&serializationtype=jms&timeout=0&leasePeriod=20000&socket.check_connectio
n=false&marshaller=org.jboss.jms.server.remoting.JMSWireFormat&unmarshaller=org.jb
oss.jms.server.remoting.JMSWireFormat
</delegate-config>
</service-config>
</service-bindings>
The jboss-service.xml for atginstance1 is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: jboss-service.xml 38992 2005-12-13 15:29:35Z jerrygauth $
-->
<!-- ===================================================================== -->
<!-- JBoss Server Configuration -->
<!-- ===================================================================== -->
<!-- Load all jars from the JBOSS_DIST/server//lib directory. This
can be restricted to specific jars by specifying them in the archives
attribute.
-->
<!-- ==================================================================== -->
<!-- JSR-77 Single JBoss Server Management Domain -->
<!-- ==================================================================== -->
jboss.system:service=MainDeployer
jboss.system:service=ServiceDeployer
;
jboss.j2ee:service=EARDeployer
jboss.ejb:service=EJBDeployer
jboss.jca:service=RARDeployer
jboss.jca:service=ConnectionFactoryDeployer</attribu
te>
jboss.web:service=WebServer
jboss.j2ee:service=ClientDeployer
jboss:service=Mail
jboss.mq:service=DestinationManager
jboss:service=Naming
jboss:service=TransactionManager
jboss:service=ClientUserTransaction</att
ribute>
jboss:service=CorbaORB
<!-- ==================================================================== -->
<!-- XMBean Persistence -->
<!-- ==================================================================== -->
<mbean code="org.jboss.system.pm.AttributePersistenceService"
name="jboss:service=AttributePersistenceService"
xmbean-dd="resource:xmdesc/AttributePersistenceService-xmbean.xml">
<!-- the AttributePersistenceService is persistent, itself -->
<!--
org.jboss.system.pm.XMLAttributePersis
tenceManager
<data-directory>data/xmbean-attrs</data-directory>
false
-->
<!-- A Thread pool service -->
JBoss System Threads
System Threads
<!-- How long a thread will live without any tasks in MS -->
60000
<!-- The max number of threads in the pool -->
10
<!-- The max number of tasks before the queue is full -->
1000
<!-- The behavior of the pool when a task is added and the queue is full.
abort - a RuntimeException is thrown
run - the calling thread executes the task
wait - the calling thread blocks until the queue has room
discard - the task is silently discarded without being run
discardOldest - check to see if a task is about to complete and enque
the new task if possible, else run the task in the calling thread
-->
run
<!-- Preload all custom editors for VMs that don't use the thread
context class loader when searching for PropertyEditors. Uncomment
if your JDK 1.3.0 VM fails to find JBoss PropertyEditors.
java.math.BigDecimal=org.jboss.util.propertyeditor.BigDecimalEditor
java.lang.Boolean=org.jboss.util.propertyeditor.BooleanEditor
java.lang.Class=org.jboss.util.propertyeditor.ClassEditor
java.util.Date=org.jboss.util.propertyeditor.DateEditor
java.io.File=org.jboss.util.propertyeditor.FileEditor
java.net.InetAddress=org.jboss.util.propertyeditor.InetAddressEditor
java.lang.Integer=org.jboss.util.propertyeditor.IntegerEditor
javax.management.ObjectName=org.jboss.mx.util.propertyeditor.ObjectNameEditor
java.util.Properties=org.jboss.util.propertyeditor.PropertiesEditor
[Ljava.lang.String;=org.jboss.util.propertyeditor.StringArrayEditor
java.net.URL=org.jboss.util.propertyeditor.URLEditor
-->
<!-- ==================================================================== -->
<!-- Log4j Initialization -->
<!-- ==================================================================== -->
<mbean code="org.jboss.logging.Log4jService"
name="jboss.system:type=Log4jService,service=Logging"
xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">
resource:log4j.xml
<!-- Set the org.apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
this needs to be set to avoid a possible deadlock on exception at the
appender level. See bug#696819.
-->
true
<!-- How frequently in seconds the ConfigurationURL is checked for changes
-->
60
<!-- ==================================================================== -->
<!-- Active Alarm Table -->
<!-- ==================================================================== -->
<!--
| The ActiveAlarmTable service is a simple JMX notification listener
| that maintains a table with the received notifications (alarms).
| The alarms can be acknowledged through the jmx or the web console.
| Modify the SubscriptionList below to subscribe for any notification
| in the system and treat it as an alarm.
| The JMXNotificationAppender is a log4j Appender that can be configured
| in log4j.xml, that trasforms logging events to JMX notification so they
| can be fed back into the table. By storing the WARN or higher level logging
| events you can have a quick view of important system faults.
|
| The following attributes may be set:
|
| MaxTableSize (default 1000)
| - set an upper limit to the number of stored alarms
| LogLevel (default DEBUG)
| - the log level to use for received notification, can be set to NONE
| ServerId (default jboss)
| - used to construct unique alarm ids
| SubscriptionList
| - subscribe for the notifications to be stored in the table
<subscription-list>
</subscription-list>
-->
<!-- ==================================================================== -->
<!-- JBoss RMI Classloader - only install when available -->
<!-- ==================================================================== -->
java.rmi.server.RMIClassLoaderSpi
org.jboss.system.JBossRMIClassLoader
<!-- ==================================================================== -->
<!-- Service Binding -->
<!-- ==================================================================== -->
<!-- Automatically activated when generatting the clustering environment -->
<!-- @TESTSUITE_CLUSTER_CONFIG@ -->
| Binding service manager for port/host mapping. This is a sample
| config that demonstrates a JBoss instances with a server name 'ports-01'
| loading its bindings from an XML file using the ServicesStoreFactory
| implementation returned by the XMLServicesStoreFactory.
|
| ServerName: The unique name assigned to a JBoss server instance for
| lookup purposes. This allows a single ServicesStore to handle mulitiple
| JBoss servers.
|
| StoreURL: The URL string passed to org.jboss.services.binding.ServicesStore
| during initialization that specifies how to connect to the bindings store.
| StoreFactory: The org.jboss.services.binding.ServicesStoreFactory interface
| implementation to create to obtain the ServicesStore instance.
${jboss.server.name}
<!-- ${jboss.home.url}/docs/examples/binding-manager/sample-binding
s.xml -->
${jboss.server.base.dir}/atginstance1-bindings.xml</attrib
ute>
org.jboss.services.binding.XMLServicesStoreFactory
<!-- ==================================================================== -->
<!-- Class Loading -->
<!-- ==================================================================== -->
8083
<!-- Should non-EJB .class files be downloadable -->
true
<!-- Should resources other than .class files be downloadable. Both
DownloadServerClasses and DownloadResources must be true for resources
to be downloadable. This is false by default because its generally a
bad idea as server configuration files that container security
information can be accessed.
-->
false
${jboss.bind.address}
${jboss.bind.address}
<!-- Use the default thread pool for dynamic class loading -->
<depends optional-attribute-name="ThreadPool"
proxy-type="attribute">jboss.system:service=ThreadPool
<!-- ==================================================================== -->
<!-- JNDI -->
<!-- ==================================================================== -->
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming"
xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
<!-- The call by value mode. true if all lookups are unmarshalled using
the caller's TCL, false if in VM lookups return the value by reference.
-->
false
<!-- The listening port for the bootstrap JNP service. Set this to -1
to run the NamingService without the JNP invoker listening port.
-->
1099
<!-- The bootstrap JNP server bind address. This also sets the default
RMI service bind address. Empty == all addresses
-->
${jboss.bind.address}
<!-- The port of the RMI naming service, 0 == anonymous -->
1098
<!-- The RMI service bind address. Empty == all addresses
-->
${jboss.bind.address}
<!-- The thread pool service used to control the bootstrap lookups -->
<depends optional-attribute-name="LookupPool"
proxy-type="attribute">jboss.system:service=ThreadPool
<mbean code="org.jboss.naming.JNDIView"
name="jboss:service=JNDIView"
xmbean-dd="resource:xmdesc/JNDIView-xmbean.xml">
<!-- The HANamingService service name -->
jboss:service=HAJNDI
<!-- ==================================================================== -->
<!-- Security -->
<!-- ==================================================================== -->
jboss.security:service=XMLLoginConfig</attribute
2;
login-config.xml
<!-- JAAS security manager and realm mapping -->
<!-- A flag which indicates whether the SecurityAssociation server mode
is set on service creation. This is true by default since the
SecurityAssociation should be thread local for multi-threaded server
operation.
-->
true
org.jboss.security.plugins.JaasSecurityManager
anonymous
<!-- DefaultCacheTimeout: Specifies the default timed cache policy timeout
in seconds.
If you want to disable caching of security credentials, set this to 0 to
force authentication to occur every time. This has no affect if the
AuthenticationCacheJndiName has been changed from the default value.
-->
1800
<!-- DefaultCacheResolution: Specifies the default timed cache policy
resolution in seconds. This controls the interval at which the cache
current timestamp is updated and should be less than the DefaultCacheTimeout
in order for the timeout to be meaningful. This has no affect if the
AuthenticationCacheJndiName has been changed from the default value.
-->
60
<!-- ==================================================================== -->
<!-- Transactions -->
<!-- ==================================================================== -->
<!-- The configurable Xid factory. For use with Oracle, set pad to true -->
<!--attribute name="Pad">true</attribute-->
<!--
| The fast in-memory transaction manager.
-->
<mbean code="org.jboss.tm.TransactionManagerService"
name="jboss:service=TransactionManager"
xmbean-dd="resource:xmdesc/TransactionManagerService-xmbean.xml">
300
<!-- set to false to disable transaction demarcation over IIOP -->
true
<depends
optional-attribute-name="XidFactory">jboss:service=XidFactory
<!-- Transaction Integrity Checking -->
<!-- Force a rollback if another thread is associated with the transaction at
commit -->
<!--depends optional-attribute-name="TransactionIntegrityFactory"
proxy-type="org.jboss.tm.integrity.TransactionIntegrityFactory">
</depends-->
<!--
| UserTransaction support.
-->
<mbean code="org.jboss.tm.usertx.server.ClientUserTransactionService"
name="jboss:service=ClientUserTransaction"
xmbean-dd="resource:xmdesc/ClientUserTransaction-xmbean.xml">
jboss:service=invoker,type=jrmp
jboss:service=ClientUserTransaction
UserTransactionSessionFactory
org.jboss.tm.usertx.interfaces.UserTransactionSession
Factory
org.jboss.proxy.ClientMethodInterceptor
org.jboss.invocation.InvokerInterceptor
jboss:service=invoker,type=jrmp
<depends optional-attribute-name="TxProxyName">
jboss:service=invoker,type=jrmp
jboss:service=ClientUserTransaction
org.jboss.tm.usertx.interfaces.UserTransactionSession
org.jboss.proxy.ClientMethodInterceptor
org.jboss.invocation.InvokerInterceptor
jboss:service=invoker,type=jrmp
<!-- ==================================================================== -->
<!-- Invokers to the JMX node -->
<!-- ==================================================================== -->
<!-- RMI/JRMP invoker -->
4444
${jboss.bind.address}
<!--
custom
custom
custom
ssl-domain-name
-->
jboss:service=TransactionManager
jboss:service=TransactionManager
1
300
300
60000
${jboss.bind.address}
4445
${jboss.bind.address}
0
1
false
<!-- Customized socket factory attributes
custom.client.factory
custom.server.factory
java:/jaas/pooledInvoker
-->
<depends
optional-attribute-name="TransactionManagerService">jboss:service=Transact
ionManager
<!-- ==================================================================== -->
<!-- Monitoring and Management -->
<!-- ==================================================================== -->
<!-- Uncomment to enable JMX monitoring of the bean cache
-->
<!-- Uncomment to enable JMX monitoring of the entity bean locking
-->
<!-- ==================================================================== -->
<!-- An MBean that is a registry for JDBC type-mapping metadata -->
<!-- ==================================================================== -->
<!-- ==================================================================== -->
<!-- Deployment Scanning -->
<!-- ==================================================================== -->
<!-- An mbean for hot deployment/undeployment of archives.
-->
<!-- Uncomment (and comment/remove version below) to enable usage of the
DeploymentCache
<depends
optional-attribute-name="Deployer">jboss.deployment:type=DeploymentCache&#
60;/depends>
-->
<depends
optional-attribute-name="Deployer">jboss.system:service=MainDeployer</
depends>
<!-- The URLComparator can be used to specify a deployment ordering
for deployments found in a scanned directory. The class specified
must be an implementation of java.util.Comparator, it must be able
to compare two URL objects, and it must have a no-arg constructor.
Two deployment comparators are shipped with JBoss:
- org.jboss.deployment.DeploymentSorter
Sorts by file extension, as follows:
"sar", "service.xml", "rar", "jar",
"war", "wsr", "ear", "zip",
"*"
- org.jboss.deployment.scanner.PrefixDeploymentSorter
If the name portion of the url begins with 1 or more digits, those
digits are converted to an int (ignoring leading zeroes), and
files are deployed in that order. Files that do not start with
any digits will be deployed first, and they will be sorted by
extension as above with DeploymentSorter.
-->
org.jboss.deployment.DeploymentSorter
<!--
org.jboss.deployment.scanner.PrefixDeploymentSorter</
attribute>
-->
<!-- Frequency in milliseconds to rescan the URLs for changes -->
5000
<!-- A flag to disable the scans -->
true
deploy/
<!-- Indicates if the scanner should recursively scan directories that
contain no "." in their names. This can be used to group applications
and services that must be deployed and that have the same
logical function in the same directory i.e.
deploy/JMX/
deploy/JMS/
...
-->
True
The jboss-service for atginstance2 is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: jboss-service.xml 38992 2005-12-13 15:29:35Z jerrygauth $
-->
<!-- ===================================================================== -->
<!-- JBoss Server Configuration -->
<!-- ===================================================================== -->
<!-- Load all jars from the JBOSS_DIST/server//lib directory. This
can be restricted to specific jars by specifying them in the archives
attribute.
-->
<!-- ==================================================================== -->
<!-- JSR-77 Single JBoss Server Management Domain -->
<!-- ==================================================================== -->
jboss.system:service=MainDeployer
jboss.system:service=ServiceDeployer
;
jboss.j2ee:service=EARDeployer
jboss.ejb:service=EJBDeployer
jboss.jca:service=RARDeployer
jboss.jca:service=ConnectionFactoryDeployer</attribu
te>
jboss.web:service=WebServer
jboss.j2ee:service=ClientDeployer
jboss:service=Mail
jboss.mq:service=DestinationManager
jboss:service=Naming
jboss:service=TransactionManager
jboss:service=ClientUserTransaction</att
ribute>
jboss:service=CorbaORB
<!-- ==================================================================== -->
<!-- XMBean Persistence -->
<!-- ==================================================================== -->
<mbean code="org.jboss.system.pm.AttributePersistenceService"
name="jboss:service=AttributePersistenceService"
xmbean-dd="resource:xmdesc/AttributePersistenceService-xmbean.xml">
<!-- the AttributePersistenceService is persistent, itself -->
<!--
org.jboss.system.pm.XMLAttributePersis
tenceManager
<data-directory>data/xmbean-attrs</data-directory>
false
-->
<!-- A Thread pool service -->
JBoss System Threads
System Threads
<!-- How long a thread will live without any tasks in MS -->
60000
<!-- The max number of threads in the pool -->
10
<!-- The max number of tasks before the queue is full -->
1000
<!-- The behavior of the pool when a task is added and the queue is full.
abort - a RuntimeException is thrown
run - the calling thread executes the task
wait - the calling thread blocks until the queue has room
discard - the task is silently discarded without being run
discardOldest - check to see if a task is about to complete and enque
the new task if possible, else run the task in the calling thread
-->
run
<!-- Preload all custom editors for VMs that don't use the thread
context class loader when searching for PropertyEditors. Uncomment
if your JDK 1.3.0 VM fails to find JBoss PropertyEditors.
java.math.BigDecimal=org.jboss.util.propertyeditor.BigDecimalEditor
java.lang.Boolean=org.jboss.util.propertyeditor.BooleanEditor
java.lang.Class=org.jboss.util.propertyeditor.ClassEditor
java.util.Date=org.jboss.util.propertyeditor.DateEditor
java.io.File=org.jboss.util.propertyeditor.FileEditor
java.net.InetAddress=org.jboss.util.propertyeditor.InetAddressEditor
java.lang.Integer=org.jboss.util.propertyeditor.IntegerEditor
javax.management.ObjectName=org.jboss.mx.util.propertyeditor.ObjectNameEditor
java.util.Properties=org.jboss.util.propertyeditor.PropertiesEditor
[Ljava.lang.String;=org.jboss.util.propertyeditor.StringArrayEditor
java.net.URL=org.jboss.util.propertyeditor.URLEditor
-->
<!-- ==================================================================== -->
<!-- Log4j Initialization -->
<!-- ==================================================================== -->
<mbean code="org.jboss.logging.Log4jService"
name="jboss.system:type=Log4jService,service=Logging"
xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">
resource:log4j.xml
<!-- Set the org.apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
this needs to be set to avoid a possible deadlock on exception at the
appender level. See bug#696819.
-->
true
<!-- How frequently in seconds the ConfigurationURL is checked for changes
-->
60
<!-- ==================================================================== -->
<!-- Active Alarm Table -->
<!-- ==================================================================== -->
<!--
| The ActiveAlarmTable service is a simple JMX notification listener
| that maintains a table with the received notifications (alarms).
| The alarms can be acknowledged through the jmx or the web console.
| Modify the SubscriptionList below to subscribe for any notification
| in the system and treat it as an alarm.
| The JMXNotificationAppender is a log4j Appender that can be configured
| in log4j.xml, that trasforms logging events to JMX notification so they
| can be fed back into the table. By storing the WARN or higher level logging
| events you can have a quick view of important system faults.
|
| The following attributes may be set:
|
| MaxTableSize (default 1000)
| - set an upper limit to the number of stored alarms
| LogLevel (default DEBUG)
| - the log level to use for received notification, can be set to NONE
| ServerId (default jboss)
| - used to construct unique alarm ids
| SubscriptionList
| - subscribe for the notifications to be stored in the table
<subscription-list>
</subscription-list>
-->
<!-- ==================================================================== -->
<!-- JBoss RMI Classloader - only install when available -->
<!-- ==================================================================== -->
java.rmi.server.RMIClassLoaderSpi
org.jboss.system.JBossRMIClassLoader
<!-- ==================================================================== -->
<!-- Service Binding -->
<!-- ==================================================================== -->
<!-- Automatically activated when generatting the clustering environment -->
<!-- @TESTSUITE_CLUSTER_CONFIG@ -->
| Binding service manager for port/host mapping. This is a sample
| config that demonstrates a JBoss instances with a server name 'ports-01'
| loading its bindings from an XML file using the ServicesStoreFactory
| implementation returned by the XMLServicesStoreFactory.
|
| ServerName: The unique name assigned to a JBoss server instance for
| lookup purposes. This allows a single ServicesStore to handle mulitiple
| JBoss servers.
|
| StoreURL: The URL string passed to org.jboss.services.binding.ServicesStore
| during initialization that specifies how to connect to the bindings store.
| StoreFactory: The org.jboss.services.binding.ServicesStoreFactory interface
| implementation to create to obtain the ServicesStore instance.
<!-- ${jboss.server.name} -->
atginstance2
<!-- ${jboss.home.url}/docs/examples/binding-manager/sample-binding
s.xml -->
${jboss.server.base.dir}/atginstance2-bindings.xml</attrib
ute>
org.jboss.services.binding.XMLServicesStoreFactory
<!-- ==================================================================== -->
<!-- Class Loading -->
<!-- ==================================================================== -->
18083
<!-- Should non-EJB .class files be downloadable -->
true
<!-- Should resources other than .class files be downloadable. Both
DownloadServerClasses and DownloadResources must be true for resources
to be downloadable. This is false by default because its generally a
bad idea as server configuration files that container security
information can be accessed.
-->
false
${jboss.bind.address}
${jboss.bind.address}
<!-- Use the default thread pool for dynamic class loading -->
<depends optional-attribute-name="ThreadPool"
proxy-type="attribute">jboss.system:service=ThreadPool
<!-- ==================================================================== -->
<!-- JNDI -->
<!-- ==================================================================== -->
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming"
xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
<!-- The call by value mode. true if all lookups are unmarshalled using
the caller's TCL, false if in VM lookups return the value by reference.
-->
false
<!-- The listening port for the bootstrap JNP service. Set this to -1
to run the NamingService without the JNP invoker listening port.
-->
11099
<!-- The bootstrap JNP server bind address. This also sets the default
RMI service bind address. Empty == all addresses
-->
${jboss.bind.address}
<!-- The port of the RMI naming service, 0 == anonymous -->
11098
<!-- The RMI service bind address. Empty == all addresses
-->
${jboss.bind.address}
<!-- The thread pool service used to control the bootstrap lookups -->
<depends optional-attribute-name="LookupPool"
proxy-type="attribute">jboss.system:service=ThreadPool
<mbean code="org.jboss.naming.JNDIView"
name="jboss:service=JNDIView"
xmbean-dd="resource:xmdesc/JNDIView-xmbean.xml">
<!-- The HANamingService service name -->
jboss:service=HAJNDI
<!-- ==================================================================== -->
<!-- Security -->
<!-- ==================================================================== -->
jboss.security:service=
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128328#4128328
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128328
18 years, 2 months
[JBoss Seam] - jbpm timer duedate causes StaleObjectStateException
by pbrewer_uk
I have a state node that requires a specific time be set (e.g. at 16:00 instead of 3 hours from now). I can achieve this via the following:
jpdl code:
| <state name="Buffer period">
| <event type="timer-create">
| <action expression="#{orderFulfillmentWorkflow.setBufferDueDate}" />
| </event>
| <timer duedate="12 hours">
| <action expression="#{orderFulfillmentWorkflow.progress}" />
| </timer>
| <transition name="bufferPeriodTimeout" to="Is order valid?"></transition>
| </state>
|
java (seam) code:
| public void setBufferDueDate() {
| Timer timer = ExecutionContext.currentExecutionContext().getTimer() ;
| if (timer != null) {
| // 3 min in future for test purposes...
| Date bufferDueDate = new Date( now.getTime() + 180000 )
| getLog().debug("Buffer due to expire on #0", bufferDueDate) ;
|
| timer.setDueDate(bufferDueDate) ;
|
| } else {
| getLog().error("No timer was available.") ;
| }
|
| }
|
| public void progress() {
| ExecutionContext.currentExecutionContext().leaveNode() ;
| }
|
The timer then fires at the time I set and the workflow then progresses until the end (or hits a wait state). At that point, the following exception is logged and the workflow is not saved:
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.save.CascadeSaveOperation] cascading save of 'org.jbpm.graph.exe.ProcessInstance@1090b29'
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.save.CascadeSaveOperation] cascading save to process instance 'org.jbpm.graph.exe.ProcessInstance@14a7b0c'
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.Services] executing default save operations
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.save.HibernateSaveOperation] saving process instance
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.save.SaveLogsOperation] flushing logs to logging service.
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.save.CascadeSaveOperation] cascading save of 'org.jbpm.graph.exe.ProcessInstance@14a7b0c'
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.db.JobSession] deleting timer(Buffer period,08-02-11 11:05:00,653,Token: 90)
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.JbpmContext] closing jbpmContext org.jbpm.JbpmContext@108d20b
| 2008-02-11 11:05:02,412 DEBUG [org.jbpm.svc.Services] closing service 'persistence': org.jbpm.persistence.db.DbPersistenceService@108d348
| 2008-02-11 11:05:02,427 DEBUG [org.jbpm.persistence.db.DbPersistenceService] flushing hibernate session SessionImpl(PersistenceContext[entityKeys=[EntityKey[org.jbpm.graph.log.SignalLog#1411], EntityKey[org.jbpm.graph.log.ProcessInstanceEndLog#1410], EntityKey[org.jbpm.graph.log.TransitionLog#1413], EntityKey[org.jbpm.graph.log.ProcessStateLog#1412], EntityKey[org.jbpm.graph.log.ActionLog#1407], EntityKey[org.jbpm.graph.def.ProcessDefinition#996], EntityKey[org.jbpm.graph.log.TransitionLog#1406], EntityKey[org.jbpm.context.log.variableinstance.StringUpdateLog#1409], EntityKey[org.jbpm.context.log.VariableCreateLog#1408], EntityKey[org.jbpm.graph.log.TransitionLog#1403], EntityKey[org.jbpm.graph.log.NodeLog#1402], EntityKey[org.jbpm.graph.log.NodeLog#1405], EntityKey[org.jbpm.graph.log.ActionLog#1404], EntityKey[org.jbpm.graph.log.ActionLog#1399], EntityKey[org.jbpm.graph.log.ActionLog#1398], EntityKey[org.jbpm.graph.log.TransitionLog#1401], EntityKey[org.jbpm.graph.log.NodeLog#1400], EntityKey[org.jbpm.graph.def.Action#5456], EntityKey[org.jbpm.graph.exe.ProcessInstance#56], EntityKey[org.jbpm.graph.def.Event#2346], EntityKey[org.jbpm.graph.def.Event#2345], EntityKey[org.jbpm.graph.def.Event#2348], EntityKey[org.jbpm.graph.exe.ProcessInstance#55], EntityKey[org.jbpm.graph.def.Action#5445], EntityKey[org.jbpm.graph.def.Action#5447], EntityKey[org.jbpm.graph.def.Action#5442], EntityKey[org.jbpm.graph.def.Action#5444], EntityKey[org.jbpm.graph.def.Transition#16612], EntityKey[org.jbpm.graph.def.Transition#16611], EntityKey[org.jbpm.context.exe.TokenVariableMap#55], EntityKey[org.jbpm.context.exe.TokenVariableMap#56], EntityKey[org.jbpm.graph.def.Transition#16603], EntityKey[org.jbpm.graph.def.Event#2353], EntityKey[org.jbpm.context.log.variableinstance.StringUpdateLog#1418], EntityKey[org.jbpm.graph.log.ProcessInstanceEndLog#1419], EntityKey[org.jbpm.graph.log.ActionLog#1416], EntityKey[org.jbpm.context.log.VariableCreateLog#1417], EntityKey[org.jbpm.graph.log.NodeLog#1414], EntityKey[org.jbpm.context.def.VariableAccess#3131], EntityKey[org.jbpm.graph.log.TransitionLog#1415], EntityKey[org.jbpm.context.def.VariableAccess#3130], EntityKey[org.jbpm.graph.exe.Token#89], EntityKey[org.jbpm.graph.exe.Token#90], EntityKey[org.jbpm.graph.def.Node#12781], EntityKey[org.jbpm.graph.def.Node#12787], EntityKey[org.jbpm.graph.def.Transition#16569], EntityKey[org.jbpm.graph.def.Transition#16570], EntityKey[org.jbpm.graph.def.Transition#16571], EntityKey[org.jbpm.graph.exe.Token#87], EntityKey[org.jbpm.graph.def.Transition#16572], EntityKey[org.jbpm.job.Job#26], EntityKey[org.jbpm.graph.exe.Token#88], EntityKey[org.jbpm.taskmgmt.exe.TaskInstance#56], EntityKey[org.jbpm.graph.node.State#12758], EntityKey[org.jbpm.graph.def.Node#12759], EntityKey[org.jbpm.graph.def.Node#12760], EntityKey[org.jbpm.graph.def.Node#12762], EntityKey[org.jbpm.module.exe.ModuleInstance#109], EntityKey[org.jbpm.module.exe.ModuleInstance#110], EntityKey[org.jbpm.context.exe.variableinstance.StringInstance#120], EntityKey[org.jbpm.context.exe.variableinstance.StringInstance#119], EntityKey[org.jbpm.context.exe.VariableInstance#118], EntityKey[org.jbpm.context.exe.VariableInstance#117], EntityKey[org.jbpm.module.exe.ModuleInstance#111], EntityKey[org.jbpm.module.exe.ModuleInstance#112], EntityKey[org.jbpm.context.exe.VariableInstance#116], EntityKey[org.jbpm.context.exe.VariableInstance#115], EntityKey[org.jbpm.graph.def.ProcessDefinition#997], EntityKey[org.jbpm.graph.def.Node#12789]],collectionKeys=[CollectionKey[org.jbpm.graph.def.ProcessDefinition.events#996], CollectionKey[org.jbpm.graph.exe.Token.children#87], CollectionKey[org.jbpm.graph.node.ProcessState.variableAccesses#12781], CollectionKey[org.jbpm.graph.def.ProcessDefinition.events#997], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16603], CollectionKey[org.jbpm.graph.exe.Token.children#90], CollectionKey[org.jbpm.graph.exe.Token.children#89], CollectionKey[org.jbpm.graph.exe.Token.children#88], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16611], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12781], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12787], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12781], CollectionKey[org.jbpm.graph.def.Transition.events#16603], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12789], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12789], CollectionKey[org.jbpm.graph.def.Transition.events#16612], CollectionKey[org.jbpm.graph.def.Transition.events#16611], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12787], CollectionKey[org.jbpm.context.exe.ContextInstance.tokenVariableMaps#111], CollectionKey[org.jbpm.graph.def.Event.actions#2345], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12762], CollectionKey[org.jbpm.graph.def.Event.actions#2348], CollectionKey[org.jbpm.graph.def.Event.actions#2346], CollectionKey[org.jbpm.graph.def.Event.actions#2353], CollectionKey[org.jbpm.taskmgmt.exe.TaskMgmtInstance.taskInstances#110], CollectionKey[org.jbpm.graph.def.Transition.events#16570], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16612], CollectionKey[org.jbpm.graph.def.Transition.events#16569], CollectionKey[org.jbpm.graph.def.Transition.events#16572], CollectionKey[org.jbpm.graph.def.Transition.events#16571], CollectionKey[org.jbpm.graph.exe.Token.comments#88], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12760], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12759], CollectionKey[org.jbpm.graph.exe.Token.comments#87], CollectionKey[org.jbpm.graph.def.Node.arrivingTransitions#12758], CollectionKey[org.jbpm.graph.exe.Token.comments#90], CollectionKey[org.jbpm.graph.exe.Token.comments#89], CollectionKey[org.jbpm.graph.def.ProcessDefinition.nodes#996], CollectionKey[org.jbpm.graph.def.ProcessDefinition.nodes#997], CollectionKey[org.jbpm.context.exe.ContextInstance.tokenVariableMaps#109], CollectionKey[org.jbpm.graph.def.ProcessDefinition.exceptionHandlers#996], CollectionKey[org.jbpm.graph.def.ProcessDefinition.exceptionHandlers#997], CollectionKey[org.jbpm.taskmgmt.exe.TaskInstance.pooledActors#56], CollectionKey[org.jbpm.graph.node.Decision.decisionConditions#12760], CollectionKey[org.jbpm.graph.node.Decision.decisionConditions#12789], CollectionKey[org.jbpm.taskmgmt.exe.TaskMgmtInstance.swimlaneInstances#110], CollectionKey[org.jbpm.taskmgmt.exe.TaskMgmtInstance.swimlaneInstances#112], CollectionKey[org.jbpm.taskmgmt.exe.TaskMgmtInstance.taskInstances#112], CollectionKey[org.jbpm.context.exe.TokenVariableMap.variableInstances#56], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12759], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12760], CollectionKey[org.jbpm.context.exe.TokenVariableMap.variableInstances#55], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12762], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12758], CollectionKey[org.jbpm.graph.def.Node.events#12787], CollectionKey[org.jbpm.graph.def.ProcessDefinition.actions#996], CollectionKey[org.jbpm.graph.def.ProcessDefinition.actions#997], CollectionKey[org.jbpm.graph.def.Node.events#12789], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16569], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12781], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16570], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16571], CollectionKey[org.jbpm.graph.def.Transition.exceptionHandlers#16572], CollectionKey[org.jbpm.graph.def.Node.events#12781], CollectionKey[org.jbpm.taskmgmt.exe.TaskInstance.comments#56], CollectionKey[org.jbpm.graph.exe.ProcessInstance.runtimeActions#55], CollectionKey[org.jbpm.graph.exe.ProcessInstance.runtimeActions#56], CollectionKey[org.jbpm.taskmgmt.exe.TaskInstance.variableInstances#56], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12762], CollectionKey[org.jbpm.graph.def.ProcessDefinition.definitions#997], CollectionKey[org.jbpm.graph.exe.ProcessInstance.instances#55], CollectionKey[org.jbpm.graph.def.ProcessDefinition.definitions#996], CollectionKey[org.jbpm.graph.exe.ProcessInstance.instances#56], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12758], CollectionKey[org.jbpm.graph.def.Node.events#12762], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12760], CollectionKey[org.jbpm.graph.def.Node.leavingTransitions#12759], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12789], CollectionKey[org.jbpm.graph.def.Node.events#12758], CollectionKey[org.jbpm.graph.def.Node.events#12759], CollectionKey[org.jbpm.graph.def.Node.exceptionHandlers#12787], CollectionKey[org.jbpm.graph.def.Node.events#12760]]];ActionQueue[insertions=[] updates=[] deletions=[EntityDeleteAction[org.jbpm.job.Timer#26]] collectionCreations=[] collectionRemovals=[] collectionUpdates=[]])
| 2008-02-11 11:05:02,427 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] Could not synchronize database state with session
| org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.job.Timer#26]
| at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1761)
| at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2519)
| at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2693)
| at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:74)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.jbpm.persistence.db.DbPersistenceService.flushSession(DbPersistenceService.java:272)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:232)
| at org.jbpm.svc.Services.close(Services.java:224)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| 2008-02-11 11:05:02,443 ERROR [org.jbpm.persistence.db.DbPersistenceService] hibernate flush failed
| org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.job.Timer#26]
| at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1761)
| at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2519)
| at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2693)
| at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:74)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
| at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.jbpm.persistence.db.DbPersistenceService.flushSession(DbPersistenceService.java:272)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:232)
| at org.jbpm.svc.Services.close(Services.java:224)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| 2008-02-11 11:05:02,458 DEBUG [org.jbpm.persistence.db.DbPersistenceService] rolling back hibernate transaction
| 2008-02-11 11:05:02,458 ERROR [org.jbpm.persistence.db.DbPersistenceService] hibernate rollback failed
| java.lang.NullPointerException
| at org.jbpm.persistence.db.DbPersistenceService.rollback(DbPersistenceService.java:304)
| at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:234)
| at org.jbpm.svc.Services.close(Services.java:224)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
|
Any ideas on how to avoid/ solve this problem? Any suggestions or comments would be gratefully received.
Many thanks, Peter.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128325#4128325
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128325
18 years, 2 months
[JBoss Seam] - Re: EntityManager not injected in onMessage method
by rmcalderero
I tried adding manually the dependency on the entity manager in the listener class, but got the same exception...
In component:
@Name("servicioResultados")
| @Scope(APPLICATION)
| @Startup(depends={"em"})
| public class ServicioResultados implements MessageListener {
| .....
The exception:
| 12:17:22,567 DEBUG [ServicioResultados] Se ejecuta el Servicio de Resultados: Nuevo mensaje......
| 12:17:22,567 WARN [ActiveMQMessageConsumer] Exception while processing message: java.lang.NullPointerException
| java.lang.NullPointerException
| at org.fundacionctic.tawmonitor.servicios.ServicioResultados.onMessage(ServicioResultados.java:113)
| at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:854)
| at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:99)
| at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:166)
| at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:117)
| at org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
| at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
| at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| at java.lang.Thread.run(Unknown Source)
|
|
The strange thing about this is that in an asynchronous method (configured with quartz) of other component (also application scoped), we read from db with the em and we send a message to the queue. And its working ok. However the listener method of our serviceReader component is not receiving the entity manager when executed. So i also think it has something to do with the way Seam manages MessageListener components (at least in a non EJB enviroment).
We also tried to move the inicialization of our servicioResultados component to a method observing the seam postInitialization event:
@Observer("org.jboss.seam.postInitialization")
| public void postInitialization() {
|
| servicioResultados.config();
| .......
|
But again the same problem.
I think this is a quite typical scenario, so i hope someone can give some insight on this issue.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128322#4128322
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128322
18 years, 2 months