This problem has continued all summer, it still occurs even though we now use 
the jTDS MSSQL driver and Portal 2.6.6.GA.  It still does not occur after a 
fresh portal db install, but after (days?) of activity we eventually hit it and 
from then on it is reproducible and that user can no longer delete portlet 
windows from Configure Dashboard.  I now have an MSSQL db which reproduces it 
consistently.

What I see happening from a db perspective is a Blocking Process.  After I 
press the DELETE button in Configure Dashboard one DB connection (process) is 
used to perform the many DELETE queries to delete a single portlet window 
object and a second connection (process) is used to then perform SELECT queries 
after that (perhaps to refresh the window).  The sixth SELECT query (using the 
second connection) gets BLOCKED because the tables it is querying from had 
records deleted in the first connection (the DELETEs).  The first connection is 
listed by MSSQL as having an Open Transaction and no command is is being 
processed: "AWAITING COMMAND".  The second connection is listed as blocked by 
the first and is processing a "SELECT".  This stalemate lasts a couple minutes, 
hanging the portal response, until a separate portal thread comes along and 
cleans up (rolls back) the transactions, causing the exceptions seen.

I was hoping to find a missing '.commit()' in the destroyChild() and 
removeChild() activity but its difficult to follow.  I dont know enough about 
container transaction management and cache syncs.  

I have found a workaround that seems to work, but would like to fix the real 
problem if it could be located -- any suggestions on how to pin down the 
underlying transaction problem with the Deletes?

The workaround is to change the <trans-attribute> from Required to RequiresNew 
for the DashboardConfigPortlet in the jboss-portlet.xml found here 
jboss-portal.sar\portal-admin.sar\portal-admin.war\WEB-INF
Can you foresee any problems with using this workaround? 

Here is url describing these values:
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/transactions/transactions7.html

My server log is over 5000 lines when I turn on all the hibernate and arjuna 
activity, so too long to post.  Here are the queries from the console, noting 
the last one is the one that hangs:


  | 16:37:52,329 INFO  [STDOUT] Hibernate: delete from JBP_INSTANCE_PER_USER 
where PK=?
  | 16:37:52,329 INFO  [STDOUT] Hibernate: update JBP_PORTLET_STATE set 
PARENT_PK=null where PARENT_PK=?
  | 16:37:52,376 INFO  [STDOUT] Hibernate: update JBP_PORTLET_STATE_ENTRY set 
ENTRY_KEY=null, NAME=null where ENTRY_KEY=?
  | 16:37:52,376 INFO  [STDOUT] Hibernate: delete from 
JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
  | 16:37:52,376 INFO  [STDOUT] Hibernate: delete from 
JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
  | 16:37:52,376 INFO  [STDOUT] Hibernate: delete from 
JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
  | 16:37:52,376 INFO  [STDOUT] Hibernate: delete from 
JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from 
JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY 
where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY 
where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY 
where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY 
where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY 
where PK=?
  | 16:37:52,392 INFO  [STDOUT] Hibernate: delete from JBP_PORTLET_STATE where 
PK=?
  | 16:37:52,408 INFO  [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT_DNAMES 
where INSTANCE_PK=?
  | 16:37:52,408 INFO  [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT_PROPS 
where OBJECT_KEY=?
  | 16:37:52,423 INFO  [STDOUT] Hibernate: delete from JBP_WINDOW where PK=?
  | 16:37:52,423 INFO  [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT where 
PK=?
  | 16:37:52,423 INFO  [STDOUT] Hibernate: delete from JBP_OBJECT_NODE where 
PK=?
  | 16:37:52,439 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK4_, 
persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, 
persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from 
JBP_INSTANCE persistent0_
  | 16:37:52,470 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK4_, 
persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, 
persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from 
JBP_INSTANCE persistent0_
  | 16:37:52,501 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK4_, 
persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, 
persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from 
JBP_INSTANCE persistent0_
  | 16:37:52,533 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK4_, 
persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, 
persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from 
JBP_INSTANCE persistent0_
  | 16:37:52,611 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK4_, 
persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, 
persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from 
JBP_INSTANCE persistent0_
  | 16:37:52,673 INFO  [STDOUT] Hibernate: select persistent0_.PK as PK21_1_, 
persistent0_.PORTLET_ID as PORTLET2_21_1_, persistent0_.REGISTRATION_ID as 
REGISTRA3_21_1_, persistent0_.REGISTRATION_TIME as REGISTRA4_21_1_, 
persistent0_.TERMINATION_TIME as TERMINAT5_21_1_, persistent0_.PARENT_PK as 
PARENT6_21_1_, entries1_.ENTRY_KEY as ENTRY5_3_, entries1_.PK as PK3_, 
entries1_.NAME as NAME3_, entries1_.PK as PK22_0_, entries1_.NAME as NAME22_0_, 
entries1_.TYPE as TYPE22_0_, entries1_.READ_ONLY as READ4_22_0_, strings2_.PK 
as PK4_, strings2_.jbp_value as jbp2_4_, strings2_.IDX as IDX4_ from 
JBP_PORTLET_STATE persistent0_ left outer join JBP_PORTLET_STATE_ENTRY 
entries1_ on persistent0_.PK=entries1_.ENTRY_KEY left outer join 
JBP_PORTLET_STATE_ENTRY_VALUE strings2_ on entries1_.PK=strings2_.PK where 
persistent0_.PK=?
  | 



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4177821#4177821

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4177821
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to