[Javassist] - How to manage instrumentation in application deployed on JBoss?
by adesanctis
adesanctis [https://community.jboss.org/people/adesanctis] created the discussion
"How to manage instrumentation in application deployed on JBoss?"
To view the discussion, visit: https://community.jboss.org/message/715422#715422
--------------------------------------------------------------
Hello everybody,
I'm trying to instrument classes in JBoss Enterprise application on JBoss EA5.0
Using this code:
| | public byte[] transform(ClassLoader loader, |
| | String className, |
| | Class classBeingRedefined, |
| | ProtectionDomain protectionDomain, |
| | byte[] classfileBuffer) throws IllegalClassFormatException { |
| | // The class name contains slashes instead of periods, so use transform those to |
| | // dots for readability within the trace |
| | String dotClassName = className.replace('/', '.'); |
| | if (className.startsWith("$")) { |
| | return null; |
| | } |
| | // Only instrument a class once |
| | if (instrumentedClasses.contains(className)) { |
| | return null; |
| | } |
| | instrumentedClasses.add(className); |
| | // Skip in the list of class prefixes to skip |
| | for (MethodSelector classToSkip : classesToSkip) { |
| | if (dotClassName.startsWith(classToSkip.getPackageName())) { |
| | return null; |
| | } |
| | } |
| | if (logger.isInfoEnabled()) { |
| | logger.info("Checking class: " + className); |
| | } |
| | |
| | try { |
| | classPool.insertClassPath(new ByteArrayClassPath(className, classfileBuffer)); |
| // | classPool.insertClassPath(new ClassClassPath(this.getClass())); |
| | |
| // | classPool.insertClassPath(new ClassClassPath(classBeingRedefined.getClass())); |
| | *CtClass cc = classPool.get(dotClassName);* |
| // | CtClass cc = classPool.makeClass(new ByteArrayInputStream(classfileBuffer)); | |
//
In bold line where exception is raised.
I suppose that arror is related to specific class loader used for load class.
The question is: how to manage classes independently from class loader used? Is there a way to manage all possible case when working on JBoss?
Thank you
Alessandro
09:37:59,040 ERROR [STDERR] javassist.NotFoundException: com.arjuna.ats.internal.jta.recovery.arjunacore.RecoveryXids
09:37:59,040 ERROR [STDERR] at javassist.ClassPool.get(ClassPool.java:436)
09:37:59,040 ERROR [STDERR] at by.concept.applicationtracer.AdvancedTransformer.transform(AdvancedTransformer.java:163)
09:37:59,040 ERROR [STDERR] at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
09:37:59,040 ERROR [STDERR] at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
09:37:59,040 ERROR [STDERR] at java.lang.ClassLoader.defineClass1(Native Method)
09:37:59,040 ERROR [STDERR] at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
09:37:59,040 ERROR [STDERR] at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:67)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:633)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:592)
09:37:59,040 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:591)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:568)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:135)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:276)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1138)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:862)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:502)
09:37:59,040 ERROR [STDERR] at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447)
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/715422#715422]
Start a new discussion in Javassist at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[JBoss Messaging] - Really long jboss server startup times
by Pras Po
Pras Po [https://community.jboss.org/people/prpo] created the discussion
"Really long jboss server startup times"
To view the discussion, visit: https://community.jboss.org/message/755249#755249
--------------------------------------------------------------
Hello guys,
I am using jboss 4.2.2.GA with jboss messaging.
The server startup is painfully slow. There is a 20 minute delay between the 2 statements highlighted below.
I am not sure what is going on during that time. the log files are not updated
Are there any parameters that I can tweak to make it faster to startup?
2012-08-22 15:57:27,601 INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@1f19e50 started
2012-08-22 15:57:27,602 INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] Connector bisocket://10.23.10.17:4457 has leasing enabled, lease period 10000 milliseconds
*2012-08-22 15:57:27,602* INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@18b6281 started
*2012-08-22 16:17:53,18*6 INFO [org.jboss.jms.server.destination.QueueService] Queue[/queue/DLQ] started, fullSize=200000, pageSize=2000, downCacheSize=2000
2012-08-22 16:17:53,271 INFO [org.jboss.jms.server.destination.QueueService] Queue[/queue/ExpiryQueue] started, fullSize=200000, pageSize=2000, downCacheSize=2000
2012-08-22 16:17:53,271 INFO [org.jboss.jms.server.destination.TopicService] Topic[/topic/testTopic] started, fullSize=200000, pageSize=2000, downCacheSize=2000
thanks
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/755249#755249]
Start a new discussion in JBoss Messaging at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - Persistence issue running jBPM 5.3 gwt-console-server on JBoss AS 7.1.1
by Brian O'Keefe
Brian O'Keefe [https://community.jboss.org/people/brianok] created the discussion
"Persistence issue running jBPM 5.3 gwt-console-server on JBoss AS 7.1.1"
To view the discussion, visit: https://community.jboss.org/message/739144#739144
--------------------------------------------------------------
Hi all,
Hopefully this is an easy issue, but I am trying to deploy gwt-console-server in JBoss AS 7.1.1 and I am getting the following error in the log (below) due to JPA it seems. I'm guessing that the duplicate import info on the first two lines is causing the failure, but I do not know why that is occurring. Any guesses?
Thanks,
Brian
15:13:41,383 INFO [org.hibernate.cfg.Configuration] (MSC service thread 1-2) HHH000071: Duplicate import: org.jbpm.persistence.processinstance.ProcessInstanceInfo -> org.jbpm.persistence.processinstance.ProcessInstanceInfo
15:13:41,399 INFO [org.hibernate.cfg.Configuration] (MSC service thread 1-2) HHH000071: Duplicate import: org.jbpm.persistence.processinstance.ProcessInstanceInfo -> ProcessInstanceInfo
15:13:41,399 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.persistenceunit."jbpm-gwt-console-server.war#org.jbpm.persistence.jpa": org.jboss.msc.service.StartException in service jboss.persistenceunit."jbpm-gwt-console-server.war#org.jbpm.persistence.jpa": Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_30]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: org.jbpm.persistence.jpa] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
... 3 more
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3380)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3369)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3357)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1334)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1724)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
... 9 more
Caused by: org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.jbpm.persistence.processinstance.ProcessInstanceInfo.eventTypes
at org.hibernate.cfg.Configuration$MappingsImpl.addCollection(Configuration.java:2582)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2139)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2114)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:405)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:320)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:171)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3377)
... 15 more
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/739144#739144]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - Problem with jBPM5.3 and (needed) activated jpa in standalone.xml
by hamsterdancer
hamsterdancer [https://community.jboss.org/people/hamsterdancer] created the discussion
"Problem with jBPM5.3 and (needed) activated jpa in standalone.xml"
To view the discussion, visit: https://community.jboss.org/message/742051#742051
--------------------------------------------------------------
Hi there.
I'm running jBoss 7.1.1 with jBPM5.3 and postgresSQL and some other applications.
I've seen, the jpa part in the standalone.xml is commented out and everything works fine. Some of our other allpications are using jpa and are depended on the outcommented lines.
> <subsystem xmlns="urn:jboss:domain:jpa:.0">
> <jpa default-datasource=""/>
> </subsystem>
The point is, with these lines, our other applications are running perfectly but the jbpm console server and the human task service is not running. Without these lines the jpbm stuff works fine but the other applications do not.
Any ideas or workarounds what I could do except for not using jpa in my other applications running on the same server (which is not an option :-/ ) ?
Thanks.
(btw. I'm still missing the catecory jBPM 5.3 on creating a new topic^^)
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/742051#742051]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - Nullpointer exception when retrieveing tasks for a user
by jess singh
jess singh [https://community.jboss.org/people/singhjess] created the discussion
"Nullpointer exception when retrieveing tasks for a user"
To view the discussion, visit: https://community.jboss.org/message/747629#747629
--------------------------------------------------------------
I am using JBPM 5.3 with Jboss 7.1 and Seam managed persistence context here is my persistence.xml
<persistence xmlns=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence"
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="main" transaction-type="JTA">
<description>Forge Persistence Unit</description>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/oracleDS</jta-data-source>
<mapping-file>META-INF/JBPMOrm-JPA2.xml</mapping-file>
<mapping-file>META-INF/Taskorm.xml</mapping-file>
<class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
<class>org.drools.persistence.info.SessionInfo</class>
<class>org.drools.persistence.info.WorkItemInfo</class>
<class>org.jbpm.task.Attachment</class>
<class>org.jbpm.task.Content</class>
<class>org.jbpm.task.BooleanExpression</class>
<class>org.jbpm.task.Comment</class>
<class>org.jbpm.task.Deadline</class>
<class>org.jbpm.task.Comment</class>
<class>org.jbpm.task.Deadline</class>
<class>org.jbpm.task.Delegation</class>
<class>org.jbpm.task.Escalation</class>
<class>org.jbpm.task.Group</class>
<class>org.jbpm.task.I18NText</class>
<class>org.jbpm.task.Notification</class>
<class>org.jbpm.task.EmailNotification</class>
<class>org.jbpm.task.EmailNotificationHeader</class>
<class>org.jbpm.task.PeopleAssignments</class>
<class>org.jbpm.task.Reassignment</class>
<class>org.jbpm.task.Status</class>
<class>org.jbpm.task.Task</class>
<class>org.jbpm.task.TaskData</class>
<class>org.jbpm.task.SubTasksStrategy</class>
<class>org.jbpm.task.OnParentAbortAllSubTasksEndStrategy</class>
<class>org.jbpm.task.OnAllSubTasksEndParentEndStrategy</class>
<class>org.jbpm.task.User</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<!-- <class>org.jbpm.process.audit.ProcessInstanceLog</class> <class>org.jbpm.process.audit.NodeInstanceLog</class>
<class>org.jbpm.process.audit.VariableInstanceLog</class> -->
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.transaction.flush_before_completion"
value="true" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<!--
<property name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
-->
</properties>
</persistence-unit>
</persistence>
here is the code -
@Resource( mappedName = "java:/TransactionManager" )
private TransactionManager tm;
@Inject
private UserTransaction ut;
public void startProcess() {
try {
// getUserTransaction().begin();
new TaskManagerServer().startServer();
KnowledgeBase kbase = readKnowledgeBase();
TransactionManager manager = (TransactionManager) new InitialContext().lookup( "java:jboss/TransactionManager" );
//manager.begin();
// create the entity manager factory and register it in the environment
EntityManagerFactory emf = EMFactory.getEntityManagerFactory(); // Persistence.createEntityManagerFactory( "main" );
Environment env = KnowledgeBaseFactory.newEnvironment();
env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );
env.set( EnvironmentName.TRANSACTION, ut );
env.set( EnvironmentName.GLOBALS, new MapGlobalResolver() );
env.set( EnvironmentName.APP_SCOPED_ENTITY_MANAGER, entityManager );
env.set( EnvironmentName.TRANSACTION_MANAGER, manager );
Map<String,Object> params = new HashMap<String,Object>();
params.put( "name", "Arthur" );
params.put( "money", 800 );
// create a new knowledge session that uses JPA to store the runtime state
StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env );
AsyncMinaHTWorkItemHandler handler = new AsyncMinaHTWorkItemHandler( ksession );
// CommandBasedWSHumanTaskHandler handler = new CommandBasedWSHumanTaskHandler( ksession );
ksession.getWorkItemManager().registerWorkItemHandler( "Human Task", handler );
String name = "ksclient-" + UUID.randomUUID();
// invoke methods on your method here
ksession.startProcess( "process_1", params );
TaskClient client = new TaskClient( new MinaTaskClientConnector( name, new MinaTaskClientHandler(
SystemEventListenerFactory.getSystemEventListener() ) ) );
client.connect( "127.0.0.1", 9123 );
BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
client.getTasksAssignedAsPotentialOwner( "john", "en-US", taskSummaryResponseHandler ); // this line throws but continues
List<TaskSummary> tasks = taskSummaryResponseHandler.getResults(); // number of tasks is always zero
for ( TaskSummary taskSummary : tasks ) {
System.out.println( taskSummary.getName() );
}
//manager.commit();
// getUserTransaction().commit();
// ksession.dispose();
} catch ( Throwable t ) {
t.printStackTrace();
}
}
405 ERROR [org.jbpm.task.service.TaskServerHandler] (NioProcessor-1) Could not start transaction.: java.lang.RuntimeException: Could not start transaction.
at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:994) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.TaskServiceSession.addTask(TaskServiceSession.java:186) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.TaskServerHandler.messageReceived(TaskServerHandler.java:144) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.mina.MinaTaskServerHandler.messageReceived(MinaTaskServerHandler.java:41) [jbpm-human-task-mina-5.3.0.Final.jar:5.3.0.Final]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:713) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:176) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:638) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:598) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:587) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:61) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:969) [mina-core-2.0.0-RC1.jar:]
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) [mina-core-2.0.0-RC1.jar:]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_31]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_31]
Caused by: java.lang.NullPointerException
at org.drools.persistence.jta.JtaTransactionManager.getStatus(JtaTransactionManager.java:205) [drools-persistence-jpa-5.4.0.Final.jar:5.4.0.Final]
at org.jbpm.task.service.persistence.TaskJTATransactionManager.getStatus(TaskJTATransactionManager.java:63) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.persistence.TaskJTATransactionManager.begin(TaskJTATransactionManager.java:36) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.persistence.TaskPersistenceManager.beginTransaction(TaskPersistenceManager.java:79) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
at org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:976) [jbpm-human-task-core-5.3.0.Final.jar:5.3.0.Final]
... 28 more
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/747629#747629]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - How to define result mapping or exit action that saves task owner
by jemmerling
jemmerling [https://community.jboss.org/people/jemmerling] created the discussion
"How to define result mapping or exit action that saves task owner"
To view the discussion, visit: https://community.jboss.org/message/648536#648536
--------------------------------------------------------------
Hi,
This should be simple for any non-novice, it was suggested before however without an example.
So I have a process variable and I want a particular task to store its owner into that variable (say its name is "task2owner"). Is there an expression for that, for example:
task2owner=#{taskOwner}
So if there is a standard expression for the task owner (the above is just a guess at what it might be) then this result mapping would allow subsequent tasks to determine who owned (and completed) task2.
Failing that, I could try defining an on exit action, using kcontext I can get the node instance which I think has a one-to-one correspondence to the task, however the node instance does not seem to have an attribute that explicitly identifies the owner. Perhaps the owner is a variable?
Any suggestion would be greatly appreciated.
Thanks!
--JE
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/648536#648536]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months
[jBPM] - Signal Event is not happening in persisted process
by ravichandrankg
ravichandrankg [https://community.jboss.org/people/ravichandrankg] created the discussion
"Signal Event is not happening in persisted process"
To view the discussion, visit: https://community.jboss.org/message/751377#751377
--------------------------------------------------------------
Hi,
In our company, we are doing some sample process implementation for our application, to decide which BPM engine to be use. It mostly have external system communication, that will trigger the next set of activities in our application.
I am using the following sample process, with one human task and two script tasks with signal events (to trigger from external applications).
https://community.jboss.org/servlet/JiveServlet/showImage/2-751377-19130/... https://community.jboss.org/servlet/JiveServlet/downloadImage/2-751377-19...
and first signal event is having the properties as below,
https://community.jboss.org/servlet/JiveServlet/showImage/2-751377-19132/... https://community.jboss.org/servlet/JiveServlet/downloadImage/2-751377-19...
I am using JBPM 5.3.0.Final version, JBOSS 5.1 and MySQL 5.5.
I am creating a single knowledge session for whole my web application (singleton object holder class, initializing at server startup time). I am creating the process as,
+ StatefulKnowledgeSession jbpmsession = util.getSession();+
+ UserTransaction ut = (UserTransaction) new InitialContext().lookup( "java:comp/UserTransaction" );+
+ ut.begin();+
+ ProcessInstance instance = jbpmsession.startProcess("IngestMetadataAndFile", props);+
+ jbpmsession.insert(instance);+
+ ut.commit();+
and the getSession method will return the new session for first time, and reloaded session there after, using the following code.
+StatefulKnowledgeSession sessionobj = null;+
+ Properties properties = new Properties();+
+ properties.put("drools.processInstanceManagerFactory", "org.jbpm.persistence.processinstance.JPAProcessInstanceManagerFactory");+
+ properties.put("drools.processSignalManagerFactory", "org.jbpm.persistence.processinstance.JPASignalManagerFactory");+
+ KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);+
+ if (sessionId == -1) {+
+ sessionobj = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, config, env );+
+ } else {+
+ try {+
+ sessionobj = JPAKnowledgeService.loadStatefulKnowledgeSession( sessionId, kbase, config, env);+
+ } catch(Exception e) {+
+ System.out.println("Exception in loading the session");+
+ sessionobj = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, config, env );+
+ }+
+ }+
+ new JPAWorkingMemoryDbLogger(sessionobj);+
+ KnowledgeRuntimeLoggerFactory.newConsoleLogger(sessionobj);+
+ JPAProcessInstanceDbLog processLog = new JPAProcessInstanceDbLog(sessionobj.getEnvironment());+
+ DsrClientHandler wsHumanTaskHandler = new DsrClientHandler(sessionobj);+
+ wsHumanTaskHandler.setClient(client.getTaskClient());+
+ sessionobj.getWorkItemManager().registerWorkItemHandler("Human Task",wsHumanTaskHandler);+
With this code, i can able to create the process instance successfully and i am completing the human task by using HornetQ service. It is sucessfully completing the human task and coming to the script task (i can see the syslogs in the script task get printed). From the script task, i am calling my business implementation java class and calling signal event after the business logic completion.
I am signalling as below,
+ StatefulKnowledgeSession ksession = util.getSession();+
+ ksession.signalEvent(eventtype, null, Long.parseLong(processid));+
+ //ksession.signalEvent(eventtype, null);+
+ ProcessInstance processinst = ksession.getProcessInstance(Long.parseLong(processid));+
+ //processinst.signalEvent(eventtype, null);+
after this signalling, it is not coming to the next script task. I have developed my BPMN file by using eclipse (setup using JBPM 5.3 installer).
I dont know what is really wrong with my code. I am not getting any exception after the signal event, but console is printing the following logs.
*2012-07-31 12:29:27,804 INFO [STDOUT] (Thread-26) BEFORE PROCESS NODE EXITED node:External Task1[id=4] process:Sample new DSR Process[id=IngestMetadataAndFile]*
*2012-07-31 12:29:27,805 INFO [STDOUT] (Thread-26) BEFORE PROCESS NODE TRIGGERED node:Signal[id=5] process:Sample new DSR Process[id=IngestMetadataAndFile]*
*2012-07-31 12:29:27,805 INFO [STDOUT] (Thread-26) AFTER PROCESS NODE TRIGGERED node:Signal[id=5] process:Sample new DSR Process[id=IngestMetadataAndFile]*
*2012-07-31 12:29:27,805 INFO [STDOUT] (Thread-26) AFTER PROCESS NODE TRIGGERED node:External Task1[id=4] process:Sample new DSR Process[id=IngestMetadataAndFile]*
*2012-07-31 12:29:27,805 INFO [STDOUT] (Thread-26) AFTER PROCESS NODE TRIGGERED node:External Task1[id=4] process:Sample new DSR Process[id=IngestMetadataAndFile]*
*2012-07-31 12:29:27,805 INFO [STDOUT] (Thread-26) AFTER PROCESS NODE TRIGGERED node:EnterMetadata[id=2] process:Sample new DSR Process[id=IngestMetadataAndFile]*
can you please help me to get out of this issue, where i got stucked and invested lot of time :( .
Thanks,
Ravichandran
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/751377#751377]
Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 8 months