[Design of JBoss jBPM] - history problem
by galanfish
i have created a process like this:
JbpmConfiguration environmentFactory = (JbpmConfiguration) getEnvironmentFactory();
| ProcessService processService = environmentFactory.get(ProcessService.class);
| ClientProcessDefinition processDefinition = ProcessDefinitionBuilder
| .startProcess("branch_history_problem")
|
| .startActivity("start", WaitState.class)
| .initial()
| .transition("forkNode")
| .endActivity()
|
| .startActivity("forkNode", ForkActivity.class) // just as org.jbpm.jpdl.internal.activity.ForkActivity
| .transition("leftWait", "to_left")
| .transition("rightWait", "to_right")
| .endActivity()
|
| .startActivity("leftWait", WaitState.class)
| .transition("leftLogic")
| .endActivity()
| .startActivity("leftLogic", WaitStateMaybeExceptionThrowout.class) // may throw out exception or call wait for signal, call historyXX inside
| .transition("join")
| .endActivity()
|
| .startActivity("rightWait", WaitState.class)
| .transition("rightLogic")
| .endActivity()
| .startActivity("rightLogic", WaitStateMaybeExceptionThrowout.class)
| .transition("join")
| .endActivity()
|
| .startActivity("join", JoinActivity.class) // just as org.jbpm.jpdl.internal.activity.JoinActivity
| .transition("end", "to_end")
| .endActivity()
|
| .startActivity("end", AutomaticActivity.class)
| .endActivity()
|
| .endProcess();
|
| /*
| / leftWait(wait state) - leftLogic(wait state) \
| start(wait state) - forkNode join - end
| \ rightWait(wait state) - rightLogic(wait state) /
| */
then, i created a process instance and made it run,
when the acitivty moves to Activity("leftLogic", WaitStateMaybeExceptionThrowout.class) or Activity("rightWait", WaitStateMaybeExceptionThrowout.class)
exception throw out:
Cannot add or update a child row: a foreign key constraint fails (`jbpm_pvm/jbpm_hist_actinst`, CONSTRAINT `FK_HAI_HPI` FOREIGN KEY (`HPI_`) REFERENCES `jbpm_hist_procinst` (`ID_`))
insertSQL= "/* insert org.jbpm.pvm.internal.history.model.HistoryActivityInstanceImpl */
insert into JBPM_HIST_ACTINST
(DBVERSION_, HPI_, ACTIVITY_, EXECUTION_, ACTIVITY_NAME_, START_, END_, DURATION_, TRANSITION_, CLASS_) values (?, ?, ?, ?, ?, ?, ?, ?, ?, 'ACT')"
then i modify the method ActivityStart#process as follow, it seems work ok...
.....
| public void process() {
| Session session = Environment.getFromCurrent(Session.class);
|
| // modification begins
| org.jbpm.pvm.internal.model.ExecutionImpl tmp = execution;
| while(tmp.getParent() != null){
| tmp = tmp.getParent();
| }
| // ends
|
| HistoryProcessInstance historyProcessInstanceImpl = (HistoryProcessInstance)
| session.load(HistoryProcessInstanceImpl.class, tmp.getId()/*execution.getId()*/); //..
|
| HistoryActivityInstanceImpl historyActivityInstanceImpl =
| createHistoryActivityInstance(historyProcessInstanceImpl);
|
| session.save(historyActivityInstanceImpl);
|
| execution.setHistoryActivityInstanceDbid(historyActivityInstanceImpl.getDbid());
| }
| .....
is there something i missed or?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211684#4211684
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211684
17 years, 1 month
[Design of Messaging on JBoss (Messaging/JBoss)] - Strings Experiments...
by clebert.suconic@jboss.com
I have done some experiments with Strings & Encoding today, and this thread is a summary of what I have found. We can talk about this at our daily iRC meeting tomorrow.
I'm reusing a buffer (ChannelBufferWrapper, same buffer used by our Netty channel), and doing the process for about 1.000.000 times.
I have compared a few different ways of serializing strings: putUTF, putSimpleString, putNewSimpleString, putString, putStringNewWay.
putNewSimpleString: I"m instantiating a new SimpleString on every write. Just because it wasn't fair to the other methods).
putSimpleString : Aways reusing the same SimpleString.
putStringNewWay: This is getting the bytes from the String, in the same way as SimpleString is doing. I'm doing that just to measure a possible optimization.
And these are the results I got:
|
| putUTF = 2928 milliseconds
|
| putNewSimpleString = 1497 milliseconds
|
| putSimpleString = 98 milliseconds
|
| putString = 2999 milliseconds
|
| putStringNewWay = 1468 milliseconds
|
|
We are being able to persist 1 million Strings in 3 seconds with the UTF. We could optimize it to probably around 50%.
We could for sure optimize putString, using the same idea Tim used to extract bytes on SimpleString.
This is the test I'm using:
|
| import junit.framework.TestCase;
|
| import org.jboss.messaging.integration.transports.netty.ChannelBufferWrapper;
| import org.jboss.messaging.util.SimpleString;
|
| public class UTF8Test extends TestCase
| {
|
| private final String str = "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5" + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5"
| + "abcdef&^*&!^ghijkl\uB5E2\uCAC7\uB2BB\uB7DD\uB7C7\uB3A3\uBCE4\uB5A5";
|
| private final SimpleString simpleStr = new SimpleString(str);
|
| int TIMES = 5;
|
| // Attributes ----------------------------------------------------
|
| // Static --------------------------------------------------------
|
| // Constructors --------------------------------------------------
|
| // Public --------------------------------------------------------
|
| long numberOfIteractions = 1000000;
|
| public void testUTFOnBufferWrapper() throws Exception
| {
| ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
|
| long start = System.currentTimeMillis();
|
| for (int c = 0; c < TIMES; c++)
| {
| for (long i = 0; i < numberOfIteractions; i++)
| {
| if (i == 10000)
| {
| start = System.currentTimeMillis();
| }
|
| buffer.rewind();
| buffer.putUTF(str);
| }
|
| long spentTime = System.currentTimeMillis() - start;
|
| System.out.println("spentTime UTF = " + spentTime);
| }
|
| }
|
| public void testPutNewSimpleString() throws Exception
| {
| ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
|
| for (int c = 0; c < TIMES; c++)
| {
| long start = System.currentTimeMillis();
|
| for (int i = 0; i < numberOfIteractions; i++)
| {
| if (i == 10000)
| {
| start = System.currentTimeMillis();
| }
| buffer.rewind();
| buffer.putSimpleString(new SimpleString(str + i));
| }
|
| long spentTime = System.currentTimeMillis() - start;
|
| System.out.println("spentTime PutNewSimpleString = " + spentTime);
| }
|
| }
|
| public void testPutSimpleString() throws Exception
| {
| ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
|
| for (int c = 0; c < TIMES; c++)
| {
| long start = System.currentTimeMillis();
|
| for (int i = 0; i < numberOfIteractions; i++)
| {
| if (i == 10000)
| {
| start = System.currentTimeMillis();
| }
| buffer.rewind();
| buffer.putSimpleString(simpleStr);
| }
|
| long spentTime = System.currentTimeMillis() - start;
|
| System.out.println("spentTime PutSimpleString = " + spentTime);
| }
|
| }
|
| public void testPutString() throws Exception
| {
| ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
|
| for (int c = 0; c < TIMES; c++)
| {
| long start = System.currentTimeMillis();
|
| for (int i = 0; i < numberOfIteractions; i++)
| {
| if (i == 10000)
| {
| start = System.currentTimeMillis();
| }
| buffer.rewind();
| buffer.putString(str + i);
| }
|
| long spentTime = System.currentTimeMillis() - start;
|
| System.out.println("spentTime putString = " + spentTime);
| }
|
| }
|
| public void testPutStringNewWay() throws Exception
| {
| ChannelBufferWrapper buffer = new ChannelBufferWrapper(10 * 1024);
|
| for (int c = 0; c < TIMES; c++)
| {
| long start = System.currentTimeMillis();
|
| for (int i = 0; i < numberOfIteractions; i++)
| {
| if (i == 10000)
| {
| start = System.currentTimeMillis();
| }
| buffer.rewind();
| buffer.putStringNewWay(str + i);
| }
|
| long spentTime = System.currentTimeMillis() - start;
|
| System.out.println("spentTime putStringNewWay = " + spentTime);
| }
|
| }
| }
|
|
And this is the proposal for putString:
(one funny thing, If I placed this loop on a method, I would increase the total time for about 0.5 second for the 1 million messages).
| public void putStringNewWay(final String nullableString)
| {
| flip();
| int len = nullableString.length();
|
| byte[] data = new byte[len << 1];
|
| int j = 0;
|
| for (int i = 0; i < len; i++)
| {
| char c = nullableString.charAt(i);
|
| byte low = (byte)(c & 0xFF); // low byte
|
| data[j++] = low;
|
| byte high = (byte)(c >> 8 & 0xFF); // high byte
|
| data[j++] = high;
| }
|
|
| buffer.writeInt(data.length);
| buffer.writeBytes(data);
| buffer.readerIndex(buffer.writerIndex());
| }
|
|
|
We can talk about these numbers on the IRC meeting tomorrow.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211662#4211662
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211662
17 years, 1 month
[Design of Messaging on JBoss (Messaging/JBoss)] - Another deadlock...
by clebert.suconic@jboss.com
Just to make a record of another deadlock I saw today.
While running:
[junit] Running org.jboss.messaging.tests.integration.http.NettyHttpTest
| [junit] Thread-1 (group:JBM-scheduled-threads-5514070) 15:33:33,169 INFO [QueueImpl] Timed out waiting for all consumers to reconnect to queue FailoverTestAddress so queue will be activated now
| [junit] Timer-1137 15:36:14,736 WARN [RemotingConnectionImpl] Connection failed, client false 875070127 Did not receive ping on connection. It is likely a client has exited or crashed without closing its connection, or the network between the server and client has failed. The connection will now be closed.
|
| [junit] Found one Java-level deadlock:
| [junit] =============================
| [junit] "Thread-5741":
| [junit] waiting to lock monitor 0x00007ffe67662e38 (object 0x00007ffe721d8520, a org.jboss.messaging.core.remoting.impl.invm.InVMConnection),
| [junit] which is held by "Thread-5754"
| [junit] "Thread-5754":
| [junit] waiting to lock monitor 0x00007ffe67662d48 (object 0x00007ffe721dade0, a java.lang.Object),
| [junit] which is held by "Thread-5741"
| [junit]
| [junit] Java stack information for the threads listed above:
| [junit] ===================================================
| [junit] "Thread-5741":
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:87)
| [junit] - waiting to lock <0x00007ffe721d8520> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe721dade0> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe722213f8> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe721dade0> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe72201f50> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe721dade0> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe72200f48> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit] "Thread-5754":
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:868)
| [junit] - waiting to lock <0x00007ffe721dade0> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe721d8520> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit]
| [junit] Found one Java-level deadlock:
| [junit] =============================
| [junit] "Thread-5760":
| [junit] waiting to lock monitor 0x00000000407959a0 (object 0x00007ffe720d2fa0, a org.jboss.messaging.core.remoting.impl.invm.InVMConnection),
| [junit] which is held by "Thread-5761"
| [junit] "Thread-5761":
| [junit] waiting to lock monitor 0x00007ffe67663540 (object 0x00007ffe720d1178, a java.lang.Object),
| [junit] which is held by "Thread-5760"
| [junit]
| [junit] Java stack information for the threads listed above:
| [junit] ===================================================
| [junit] "Thread-5760":
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:87)
| [junit] - waiting to lock <0x00007ffe720d2fa0> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe720d1178> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe720ce8b8> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe720d1178> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe720da9f8> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe720d1178> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe720d1fb8> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit] "Thread-5761":
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:868)
| [junit] - waiting to lock <0x00007ffe720d1178> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe720d2fa0> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit]
| [junit] Found one Java-level deadlock:
| [junit] =============================
| [junit] "Thread-5764":
| [junit] waiting to lock monitor 0x0000000040795d60 (object 0x00007ffe72154df8, a java.lang.Object),
| [junit] which is held by "Thread-5755"
| [junit] "Thread-5755":
| [junit] waiting to lock monitor 0x0000000040795ec8 (object 0x00007ffe7218e978, a org.jboss.messaging.core.remoting.impl.invm.InVMConnection),
| [junit] which is held by "Thread-5764"
| [junit]
| [junit] Java stack information for the threads listed above:
| [junit] ===================================================
| [junit] "Thread-5764":
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:868)
| [junit] - waiting to lock <0x00007ffe72154df8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe7218e978> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit] "Thread-5755":
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:87)
| [junit] - waiting to lock <0x00007ffe7218e978> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe72154df8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe72192188> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe72154df8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe72156650> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe72154df8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe7218d958> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe72154df8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe721911f8> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit]
| [junit] Found one Java-level deadlock:
| [junit] =============================
| [junit] "Thread-1911":
| [junit] waiting to lock monitor 0x000000004038fa78 (object 0x00007ffe7204c990, a java.lang.Object),
| [junit] which is held by "Thread-1910"
| [junit] "Thread-1910":
| [junit] waiting to lock monitor 0x000000004038fc58 (object 0x00007ffe7204c9a0, a org.jboss.messaging.core.remoting.impl.invm.InVMConnection),
| [junit] which is held by "Thread-1911"
| [junit]
| [junit] Java stack information for the threads listed above:
| [junit] ===================================================
| [junit] "Thread-1911":
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:868)
| [junit] - waiting to lock <0x00007ffe7204c990> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe7204c9a0> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit] "Thread-1910":
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:87)
| [junit] - waiting to lock <0x00007ffe7204c9a0> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe7204c990> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe7219eb30> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit]
| [junit] Found one Java-level deadlock:
| [junit] =============================
| [junit] "Thread-471":
| [junit] waiting to lock monitor 0x000000004038f208 (object 0x00007ffe71df5158, a java.lang.Object),
| [junit] which is held by "Thread-470"
| [junit] "Thread-470":
| [junit] waiting to lock monitor 0x000000004038f3e8 (object 0x00007ffe71e12718, a org.jboss.messaging.core.remoting.impl.invm.InVMConnection),
| [junit] which is held by "Thread-471"
| [junit]
| [junit] Java stack information for the threads listed above:
| [junit] ===================================================
| [junit] "Thread-471":
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:868)
| [junit] - waiting to lock <0x00007ffe71df5158> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe71e12718> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit] "Thread-470":
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:87)
| [junit] - waiting to lock <0x00007ffe71e12718> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.internalClose(RemotingConnectionImpl.java:603)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:457)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:872)
| [junit] - locked <0x00007ffe71df5158> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:198)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector$Listener.connectionDestroyed(InVMConnector.java:187)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnection.close(InVMConnection.java:97)
| [junit] - locked <0x00007ffe71e2d408> (a org.jboss.messaging.core.remoting.impl.invm.InVMConnection)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMConnector.disconnect(InVMConnector.java:161)
| [junit] at org.jboss.messaging.core.remoting.impl.invm.InVMAcceptor$Listener$1.run(InVMAcceptor.java:167)
| [junit]
| [junit] Found 5 deadlocks.
| [junit]
|
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211651#4211651
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211651
17 years, 1 month
[Design of JBoss Build System] - update on App server mavenization
by pgier
I have now migrated approximately half of the app server modules in trunk (AS 6) to maven, and I will be finishing the rest in the next couple of weeks.
The build now works by calling the maven modules from the ant build (build/build.xml) and then continuing with the ant build of the distribution. Soon I will be removing the build.xml files in the modules where they are no longer needed and I will change the sh and bat scripts to point to the maven build instead of ant.
Once all of the individual modules are converted, the next step will be to simplify the distribution build (JBBUILD-513).
After that, my goal is to gradually phase out use of the thirdparty directory. The dependencies that are currently downloaded into thirdparty will be split up into several places. Each module will define it's own dependencies in its pom. Dependencies that are needed for the distribution, but not for any module build will be added to build/pom.xml. And dependencies that are only needed by the testsuite will be listed in a new pom in the testsuite directory.
The modules that have already been migrated are:
bootstrap, main, j2se, mbeans, jmx, system, system-jmx, security, server, deployment, jbossas/remoting, jmx-remoting, jbossas/jmx-remoting
The remaining modules will be migrated in this order:
messaging, cluster, varia, iiop, aspects, profileservice, connector, management, ejb3, tomcat, webservices, hibernate-int, console, spring-int
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211644#4211644
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211644
17 years, 1 month
[Design of JBoss jBPM] - Re: statefull vs stateless delegation classes
by cvl
"alex.guizar(a)jboss.com" wrote : Won't caching make expression evaluation in delegation properties unfeasible?
|
| <delegation class="org.example.Taco">
| | <sauce>${actor.sauce.preference}</sauce>
| | </delegation>
|
| If the above is not a requirement (I have wished for it more than once, and not just me, see JBPM-1752) then we can have a single object per process definition. Otherwise we need a pool.
Well, how we solved this, is that we added the layer for all handlers, which injects the properties:
| <action class="com.xxx.jbpm.proxy.JbpmHandlerProxy">
| <handlerName>myHandler</handlerName>
| <propertyMap key-type='java.lang.String' value-type='java.lang.String'>
| <entry><key>myProperty</key><value>#{myVar}</value></entry>
| <entry><key>myProperty2</key><value>#{myVar2}</value></entry>
| </propertyMap>
| </action>
Not too nice, but usable.
cvl
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211622#4211622
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211622
17 years, 1 month
[Design of JBoss jBPM] - Re: statefull vs stateless delegation classes
by cvl
This sounds somewhat like deciding for the user how to use the system.
Why not add some flexibility - e.g. as with spring, you could point out the scope of the handler (like singleton).
Pool is good for non singleton handlers (like jsf works).
About the state in the action handler - we use that to autowire spring dependencies (@Autowire annotation)
For now we are using only singleton scope, so that's not a problem (if you don't reload spring container), but what if you want to add some custom scope, let's say @ProcessInstance.
Anyways, it's just an example, the idea is, why add some restrictions, where flexibility is wanted.
I'm for configurable option, and not globally of course, but for each handler (with sensible default).
cvl
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211621#4211621
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211621
17 years, 1 month