Re: concurrent access to LRS

2006-12-13 Thread roger.keays
)

 org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex
 (HtmlDataTableHack.java:243)

 org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex
 (HtmlDataTable.java:263)

 org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererB 
 as
 e.encodeInnerHtml(HtmlTableRendererBase.java:257)

 org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererB 
 as
 e.encodeChildren(HtmlTableRendererBase.java:134)

 org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildr 
 en
 (HtmlTableRenderer.java:187)

 javax.faces.component.UIComponentBase.encodeChildren
 (UIComponentBase.java:828)
  javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
  javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
  com.sun.facelets.FaceletViewHandler.renderView
 (FaceletViewHandler.java:578)

 Cheers,

 Roger
 -- 
 View this message in context: http://www.nabble.com/concurrent-
 access-to-LRS-tf2811717.html#a7846241
 Sent from the open-jpa-dev mailing list archive at Nabble.com.





 -- 
 View this message in context: http://www.nabble.com/concurrent- 
 access-to-LRS-tf2811717.html#a7846763
 Sent from the open-jpa-dev mailing list archive at Nabble.com.

 
 
 

-- 
View this message in context: 
http://www.nabble.com/concurrent-access-to-LRS-tf2811717.html#a7849597
Sent from the open-jpa-dev mailing list archive at Nabble.com.



concurrent access to LRS

2006-12-12 Thread roger.keays

Now that I have an em which lives for longer than one request (as per my
previous thread) I have noticed some concurrency issues accessing the large
result set. Since my app uses frames, there are occasions when two frames
will be refreshed at the same time. When this occurs, and the both try to
iterate the LRS I will frequently get either a NullPointerException or
NoSuchElementException (result list is closed). Loading the frames one by
one works fine.

I've tried to the following with no avail:
* Adding openjpa.Multithreaded=true
* Synchronizing the LRS' getter method
* Removing connection pooling (i.e. use openjpa's datasource)
* Using mysql instead of postgresql
* Disabling the query cache
* Disabling the data cache

As you can see, I'm a bit stuck. Any suggestions welcome.

The NullPointerException stacktrace is:

java.lang.NullPointerException

org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.next(SelectResultObjectProvider.java:96)

org.apache.openjpa.lib.rop.WindowResultList.getInternal(WindowResultList.java:126)

org.apache.openjpa.lib.rop.AbstractNonSequentialResultList.get(AbstractNonSequentialResultList.java:69)

org.apache.openjpa.kernel.DelegatingResultList.get(DelegatingResultList.java:241)
 javax.faces.model.ListDataModel.getRowData(ListDataModel.java:141)
 javax.faces.model.ListDataModel.setRowIndex(ListDataModel.java:175)
 javax.faces.model.ListDataModel.setWrappedData(ListDataModel.java:209)
 javax.faces.model.ListDataModel.init(ListDataModel.java:68)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.createDataModel(HtmlDataTableHack.java:448)

org.apache.myfaces.component.html.ext.HtmlDataTable.createDataModel(HtmlDataTable.java:847)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.getDataModel(HtmlDataTableHack.java:414)

org.apache.myfaces.component.html.ext.HtmlDataTable.getDataModel(HtmlDataTable.java:839)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.getRowCount(HtmlDataTableHack.java:87)

org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:226)

org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:134)

org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:187)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
 com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:578)

and the NoSuchElementException:

java.util.NoSuchElementException: The result list has been closed.

org.apache.openjpa.lib.rop.AbstractResultList.assertOpen(AbstractResultList.java:91)
 org.apache.openjpa.lib.rop.WindowResultList.size(WindowResultList.java:81)

org.apache.openjpa.kernel.DelegatingResultList.size(DelegatingResultList.java:133)
 javax.faces.model.ListDataModel.isRowAvailable(ListDataModel.java:99)
 javax.faces.model.ListDataModel.setRowIndex(ListDataModel.java:174)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:243)

org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:263)

org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:257)

org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:134)

org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:187)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:828)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
 com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:578)

Cheers,

Roger
-- 
View this message in context: 
http://www.nabble.com/concurrent-access-to-LRS-tf2811717.html#a7846241
Sent from the open-jpa-dev mailing list archive at Nabble.com.



Re: concurrent access to LRS

2006-12-12 Thread Marc Prud'hommeaux

Roger-

Was a transaction committed or rolled back between the two requests?  
Many databases and/or JDBC drivers do not allow a result set cursor  
to span multiple transactions, which might be the cause of this error  
(which, admittedly, we are not handling as gracefully as we could be).




On Dec 12, 2006, at 6:26 PM, roger.keays wrote:



Now that I have an em which lives for longer than one request (as  
per my
previous thread) I have noticed some concurrency issues accessing  
the large
result set. Since my app uses frames, there are occasions when two  
frames
will be refreshed at the same time. When this occurs, and the both  
try to

iterate the LRS I will frequently get either a NullPointerException or
NoSuchElementException (result list is closed). Loading the frames  
one by

one works fine.

I've tried to the following with no avail:
* Adding openjpa.Multithreaded=true
* Synchronizing the LRS' getter method
* Removing connection pooling (i.e. use openjpa's datasource)
* Using mysql instead of postgresql
* Disabling the query cache
* Disabling the data cache

As you can see, I'm a bit stuck. Any suggestions welcome.

The NullPointerException stacktrace is:

java.lang.NullPointerException

org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.next 
(SelectResultObjectProvider.java:96)


org.apache.openjpa.lib.rop.WindowResultList.getInternal 
(WindowResultList.java:126)


org.apache.openjpa.lib.rop.AbstractNonSequentialResultList.get 
(AbstractNonSequentialResultList.java:69)


org.apache.openjpa.kernel.DelegatingResultList.get 
(DelegatingResultList.java:241)

 javax.faces.model.ListDataModel.getRowData(ListDataModel.java:141)
 javax.faces.model.ListDataModel.setRowIndex(ListDataModel.java:175)
 javax.faces.model.ListDataModel.setWrappedData(ListDataModel.java: 
209)

 javax.faces.model.ListDataModel.init(ListDataModel.java:68)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.createDataMode 
l(HtmlDataTableHack.java:448)


org.apache.myfaces.component.html.ext.HtmlDataTable.createDataModel 
(HtmlDataTable.java:847)


org.apache.myfaces.component.html.ext.HtmlDataTableHack.getDataModel 
(HtmlDataTableHack.java:414)


org.apache.myfaces.component.html.ext.HtmlDataTable.getDataModel 
(HtmlDataTable.java:839)


org.apache.myfaces.component.html.ext.HtmlDataTableHack.getRowCount 
(HtmlDataTableHack.java:87)


org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBas 
e.encodeInnerHtml(HtmlTableRendererBase.java:226)


org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBas 
e.encodeChildren(HtmlTableRendererBase.java:134)


org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren 
(HtmlTableRenderer.java:187)


javax.faces.component.UIComponentBase.encodeChildren 
(UIComponentBase.java:828)

 javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
 com.sun.facelets.FaceletViewHandler.renderView 
(FaceletViewHandler.java:578)


and the NoSuchElementException:

java.util.NoSuchElementException: The result list has been closed.

org.apache.openjpa.lib.rop.AbstractResultList.assertOpen 
(AbstractResultList.java:91)
 org.apache.openjpa.lib.rop.WindowResultList.size 
(WindowResultList.java:81)


org.apache.openjpa.kernel.DelegatingResultList.size 
(DelegatingResultList.java:133)

 javax.faces.model.ListDataModel.isRowAvailable(ListDataModel.java:99)
 javax.faces.model.ListDataModel.setRowIndex(ListDataModel.java:174)

org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex 
(HtmlDataTableHack.java:243)


org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex 
(HtmlDataTable.java:263)


org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBas 
e.encodeInnerHtml(HtmlTableRendererBase.java:257)


org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBas 
e.encodeChildren(HtmlTableRendererBase.java:134)


org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren 
(HtmlTableRenderer.java:187)


javax.faces.component.UIComponentBase.encodeChildren 
(UIComponentBase.java:828)

 javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
 com.sun.facelets.FaceletViewHandler.renderView 
(FaceletViewHandler.java:578)


Cheers,

Roger
--
View this message in context: http://www.nabble.com/concurrent- 
access-to-LRS-tf2811717.html#a7846241

Sent from the open-jpa-dev mailing list archive at Nabble.com.





Re: concurrent access to LRS

2006-12-12 Thread roger.keays
(UIComponent.java:883)
  javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
  com.sun.facelets.FaceletViewHandler.renderView 
 (FaceletViewHandler.java:578)

 Cheers,

 Roger
 -- 
 View this message in context: http://www.nabble.com/concurrent- 
 access-to-LRS-tf2811717.html#a7846241
 Sent from the open-jpa-dev mailing list archive at Nabble.com.

 
 
 

-- 
View this message in context: 
http://www.nabble.com/concurrent-access-to-LRS-tf2811717.html#a7846763
Sent from the open-jpa-dev mailing list archive at Nabble.com.



Re: concurrent access to LRS

2006-12-12 Thread Marc Prud'hommeaux
)

org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildr 
en

(HtmlTableRenderer.java:187)

javax.faces.component.UIComponentBase.encodeChildren
(UIComponentBase.java:828)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:883)
 javax.faces.component.UIComponent.encodeAll(UIComponent.java:889)
 com.sun.facelets.FaceletViewHandler.renderView
(FaceletViewHandler.java:578)

Cheers,

Roger
--
View this message in context: http://www.nabble.com/concurrent-
access-to-LRS-tf2811717.html#a7846241
Sent from the open-jpa-dev mailing list archive at Nabble.com.







--
View this message in context: http://www.nabble.com/concurrent- 
access-to-LRS-tf2811717.html#a7846763

Sent from the open-jpa-dev mailing list archive at Nabble.com.