[jBPM Users] - Re: JBPM Nested Fork/Joins Doesn't seem to work
by romain_l-m
Hi philsegal, kukeltje and others,
I think I misunderstand this topic.
Could you, please, read my process definition and test case ? Sorry for not using assert() correctly, I currently can't remove the println() from my code. The questions I ask are in the test case comments.
Thanks in advance for your help. I was not able to find any JIRA information. This forum thread seems to be related to my problem.
=== Process ==================================
| <?xml version="1.0" encoding="UTF-8"?>
| <process key="test1" name="test1" xmlns="http://jbpm.org/4.0/jpdl">
| <start name="start1">
| <transition name="to fork1" to="fork1"/>
| </start>
| <fork name="fork1">
| <transition name="to task1" to="task1"/>
| <transition name="to task2" to="task2"/>
| </fork>
| <task name="task2">
| <transition name="to join2" to="join2"/>
| </task>
| <task name="task1">
| <transition name="to fork2" to="fork2"/>
| </task>
| <fork name="fork2">
| <transition name="to task1.1" to="task1.1"/>
| <transition name="to task1.2" to="task1.2"/>
| </fork>
| <taskname="task1.1">
| <transition name="to join1" to="join1"/>
| </task>
| <task name="task1.2">
| <transition name="to join1" to="join1"/>
| </task>
| <join name="join1">
| <transition name="to join2" to="join2"/>
| </join>
| <join name="join2">
| <transition name="to end1" to="end1"/>
| </join>
| <end name="end1"/>
| </process>
|
=== API ===================================
| // test case which extends JbpmTestCase
| public void testTaskConcurrency() {
| repositoryService.createDeployment().addResourceFromClasspath("test1.jpdl.xml").deploy();
|
| ProcessInstance processInstance = executionService.startProcessInstanceByKey("test1");
| String processInstanceId = processInstance.getId();
| System.out.println("Process started:");
| for (Task taskTemp : taskService.createTaskQuery().processInstanceId(processInstanceId).list()) {
| System.out.println(String.format("> Task '%s' with execution '%s'", taskTemp.getActivityName(), taskTemp.getExecutionId()));
| }
| /* Output (ok):
| * > Task 'task1' with execution 'test1.1.to task1'
| * > Task 'task2' with execution 'test1.1.to task2'
| */
|
| Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).activityName("task1").uniqueResult();
| taskService.completeTask(task.getId());
| System.out.println("task1 completed:");
| for (Task taskTemp : taskService.createTaskQuery().processInstanceId(processInstanceId).list()) {
| System.out.println(String.format("> Task '%s' with execution '%s'", taskTemp.getActivityName(), taskTemp.getExecutionId()));
| }
| /* Output (strange):
| * > Task 'task2' with execution 'test1.1.to task2'
| * > Task 'task1.1' with execution 'test1.1.to task1.1'
| * > Task 'task1.2' with execution 'test1.1.to task1.2'
| * > Task 'task1.1' with execution 'test1.1.to task1'
| */
| /* Questions:
| * Why do I have 2 different 'task1.1' (with different execution id)?
| * Which one should I complete?
| * Imagine task1 is not a task but a subprocess, this subprocess would be started twice. Is it normal?
| */
|
| // I cannot use the uniqueResult() method (the task I want to get is not unique)
| task = taskService.createTaskQuery().processInstanceId(processInstanceId).activityName("task1.1").list().get(0);
| taskService.completeTask(task.getId());
| System.out.println("task1.1 completed:");
| for (Task taskTemp : taskService.createTaskQuery().processInstanceId(processInstanceId).list()) {
| System.out.println(String.format("> Task '%s' with execution '%s'", taskTemp.getActivityName(), taskTemp.getExecutionId()));
| }
| /* Output (still strange):
| * > Task 'task2' with execution 'test1.1.to task2'
| * > Task 'task1.1' with execution 'test1.1.to task1.1'
| * > Task 'task1.2' with execution 'test1.1.to task1.2'
| */
|
| task = taskService.createTaskQuery().processInstanceId(processInstanceId).activityName("task1.2").uniqueResult();
| taskService.completeTask(task.getId());
| System.out.println("task1.2 completed:");
| for (Task taskTemp : taskService.createTaskQuery().processInstanceId(processInstanceId).list()) {
| System.out.println(String.format("> Task '%s' with execution '%s'", taskTemp.getActivityName(), taskTemp.getExecutionId()));
| }
| /* Output (still strange):
| * > Task 'task2' with execution 'test1.1.to task2'
| * > Task 'task1.1' with execution 'test1.1.to task1.1'
| */
| /* Question:
| * I reached the first join, why do I still see the second 'task1.1'?
| */
|
| task = taskService.createTaskQuery().processInstanceId(processInstanceId).activityName("task2").uniqueResult();
| taskService.completeTask(task.getId());
| System.out.println("task2 completed:");
| for (Task taskTemp : taskService.createTaskQuery().processInstanceId(processInstanceId).list()) {
| System.out.println(String.format("> Task '%s' with execution '%s'", taskTemp.getActivityName(), taskTemp.getExecutionId()));
| }
| /* Output (ok):
| * [nothing]
| */
| }
|
=== Environment ==============================
- jBPM Version : 4.1
- Database : MySQL 5.1
- JDK : 1.6.0_15
- Container : java -version
- Configuration : default jbpm.cfg.xml
- Libraries : default librairies
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4254229#4254229
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4254229
15 years, 4 months
[JBoss Remoting Users] - Re: invoker locator config vs. request metadata params
by ron.sigal@jboss.com
Hi John,
I haven't played with the proxy stuff, but Remoting has nothing to do with the system properties - if they're set, they should be picked up when the HttpURLConnection is created. In other words, as far as I can tell, there's nothing in Remoting to break with respect to proxy specification by system properties. There's a discussion here: http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html. It's for jdk 6, but the system properties go back to jdk 1.4
As far as setting the "http.proxyHost" and "http.proxyPort" parameters in the InvokerLocator, well, there isn't a way to do it as of now. I can think of two reasons:
(1) it's really a client specific issue, not relevant to the server, and
(2) a new HttpURLConnection is created with each invocation, so it's natural to grab the parameters from the metadata map passed to the invocation.
Nonetheless, in a context like the Application Server, where most configuration gets downloaded from the server, I can see why you might want to be able to configure these properties in the InvokerLocator. If you want to create a JIRA issue, I'll make it possible.
By the way, Remoting 2 is more or less in maintenance mode now, so I won't be doing much new development. But for you ... :)
-Ron
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4254227#4254227
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4254227
15 years, 4 months
[Installation, Configuration & Deployment] - How to bind to all interfaces on JBoss 5.1
by ngtdave
I have a JBoss 5.1.0.GA installation which starts and runs fine. But if I change the run.bat to use either -b0.0.0.0 or -Djboss.bind.address=0.0.0.0 I get an exception while trying to start up the AS:
| 09:16:13,590 FATAL [arjLoggerI18N] [com.arjuna.ats.internal.arjuna.recovery.fail] RecoveryManagerImple: cannot bind to socket on address /0.0.0.0 and port 4,712
| 09:16:13,590 ERROR [AbstractKernelController] Error installing to Create: name=TransactionManager state=Configured
| com.arjuna.ats.arjuna.exceptions.FatalError: Recovery manager already active (or recovery port and address are in use)!
| at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.<init>(RecoveryManagerImple.java:164)
All I have done is downloaded the zip file, unzipped it, and edited the run.bat as described above. The installation path does not contain spaces. I am on Windows XP.
Any help would be greatly appreciated. :)
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4254222#4254222
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4254222
15 years, 4 months
[Datasource Configuration] - Oracle Datasource: Unable to fill pool. OutOfMemoryException
by chris9999222
Hello NG,
we develope our first project on JBoss, and so we are not very experienced. But for several months we were very happy with JBoss where we also have a Oracle Datasource which we use. So everythings fine,
BUT for 2-3 days now, we've got the following error. The ConnectionPool tell us that he is unable to fill the Pool and the database is OutOfMemory. Other connections (outside Jboss) to the database lead to the OutOfMemory-Error, too. Everytime we have to stop JBoss to get the database work again.
Can anyone tell me what we've done wrong? What can I figure out or monitor inside JBoss to discover the error(s)? Are there any suggestions or ideas?
Thanks a lot for any help!
Chris
Here is the terrible Excpetion:
2009-09-09 17:11:51,868 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Unable to fill pool
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: ORA-01034: ORACLE not available
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
Additional information: 1
Additional information: 65536
Additional information: 8
)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:179)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:577)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.fillToMin(InternalManagedConnectionPool.java:524)
at org.jboss.resource.connectionmanager.PoolFiller.run(PoolFiller.java:74)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: ORA-01034: ORACLE not available
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
Additional information: 1
Additional information: 65536
Additional information: 8
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:243)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:304)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:348)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:151)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:563)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:171)
... 4 more
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4254220#4254220
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4254220
15 years, 4 months