[JBoss Messaging] - Re: JMS Exceptions / Mismatch of JBossSerialization version
by rtm333
I have to partially correct my previous statement. Although we did not observe issue 2) since upgrading to JBM 1.0.1.SP4, issue 1) now reoccurred.
It happened again under Solaris 10 as well as under Redhat Linux. As imaeses remarked in an earlier posting it seems to be related to heavy (server) load.
As far as I can tell there two different incarnations of the exception:
| 2007-04-18 13:22:27,632 ERROR [org.jboss.remoting.transport.socket.ServerThread] Worker thread initialization failure
| java.lang.reflect.InvocationTargetException
| at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
| at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
| at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
| at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
| at org.jboss.remoting.transport.socket.ServerThread.createServerSocketWrapper(ServerThread.java:694)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:358)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:159)
| Caused by: java.io.IOException: Mismatch version of JBossSerialization signature
| at org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:113)
| at org.jboss.serial.io.JBossObjectInputStream.<init>(JBossObjectInputStream.java:94)
| at org.jboss.remoting.serialization.impl.jboss.JBossSerializationManager.createInput(JBossSerializationManager.java:57)
| at org.jboss.jms.server.remoting.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:125)
| at org.jboss.jms.client.remoting.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:123)
| at org.jboss.jms.client.remoting.ClientSocketWrapper.<init>(ClientSocketWrapper.java:73)
| at org.jboss.jms.server.remoting.ServerSocketWrapper.<init>(ServerSocketWrapper.java:67)
| ... 7 more
|
and
| 2007-04-18 14:22:33,886 ERROR [org.jboss.remoting.transport.socket.ServerThread] Worker thread initialization failure
| java.lang.reflect.InvocationTargetException
| at sun.reflect.GeneratedConstructorAccessor80.newInstance(Unknown Source)
| at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
| at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
| at org.jboss.remoting.transport.socket.ServerThread.createServerSocketWrapper(ServerThread.java:694)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:358)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:159)
| Caused by: java.net.SocketException: Connection reset
| at java.net.SocketInputStream.read(SocketInputStream.java:168)
| at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
| at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
| at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
| at java.io.FilterInputStream.read(FilterInputStream.java:90)
| at org.jboss.serial.io.JBossObjectInputStream.checkSignature(JBossObjectInputStream.java:110)
| at org.jboss.serial.io.JBossObjectInputStream.<init>(JBossObjectInputStream.java:94)
| at org.jboss.remoting.serialization.impl.jboss.JBossSerializationManager.createInput(JBossSerializationManager.java:57)
| at org.jboss.jms.server.remoting.ServerSocketWrapper.createInputStream(ServerSocketWrapper.java:125)
| at org.jboss.jms.client.remoting.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:123)
| at org.jboss.jms.client.remoting.ClientSocketWrapper.<init>(ClientSocketWrapper.java:73)
| at org.jboss.jms.server.remoting.ServerSocketWrapper.<init>(ServerSocketWrapper.java:67)
| ... 6 more
|
Besides these exceptions I can detect no actual problems caused by this issue. Nevertheless I find it to some extent worrying.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038449#4038449
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038449
19 years, 1 month
[JBoss Seam] - End conversation and redirect problem
by Sammy8306
I'm having some trouble with conversation ending/propagation. Let me first sketch the essentials. We have 2 pages (blog.xhtml and newBlogEntry.xhtml), each backed by a seam component.
blog.xhtml uses a dataTable to display the list of entries, each row containing a s:link to newBlogEntry.xhtml (which also doubles as editor for an existing entry when blogList optionally outjects a BlogEntry to the newBlogEntry component), and an h:commandButton calling a function in blogList to delete the entry. Notice that a long-runnning conversation is started at the creation of the blogList component, allowing for a get-request like
/blog.seam?userId=1, as well as subsequent /blog.seam requests to work.
| @Name("blogList")
| @Scope(ScopeType.CONVERSATION)
| public class BlogEntryShowAction implements java.io.Serializable
| {
| ....
| @RequestParameter("userId")
| private Long userId;
|
| @DataModel
| List<BlogEntry> entries;
|
| public List<BlogEntry> getEntries() ...
|
| @Create @Begin
| public List<BlogEntry> getInitialEntries(){
| if(userId == null ){
| System.err.println("No UserId defined, couldn't start conversation");
| System.err.println("user==" + user);
| return null;
| }else{
| user = em.find(User.class, userId);
| return getEntries();
| }
| }
| }
|
now the conversation started in blog.xhtml is ended in newBlogEntry.xhtml, which is backed by the following component, by calling addEntry():
| @Name("newBlogEntry")
| @Scope(ScopeType.CONVERSATION)
| public class BlogEntryNewAction implements java.io.Serializable
| {
| // a User and BlogEntry object are injected from blogList
| @In(create=true) // here we ensure an empty BlogEntry is created whenever none is passed
| ...
|
| @End
| public String addEntry(){
| user = getUser();
| if(user != null ) {
| try{
| // some persistance calls that work perfectly
| } catch (Exception e){
|
| //handle exc. stuff
| }
| }
|
| return "/blog.xhtml?userId=" + user.getId();
|
| }
| }
|
Code that calls addEntry:
| ..
| <h:commandButton value="Add Entry" action="#{newBlogEntry.addEntry}">
| <f:param name="conversationPropagation" value="none"/>
| </h:commandButton>
| ..
|
This page then redirects to our initial listing page, providing the userId again. My idea was that the conversation ends (that happens), gets garbage collected (that works, checked using debug.seam after clicking the add entry button and the succesful redirect). However, something strange (at least for me it is), is that a new conversation is not started directly after the redirect. I can see the
(up-to-date, modified) entries, but the conversation-context does not exist anymore (the link after redirect looks something like /blog.seam?userId=1&cid=2, but conversation 2 has already ended) ?! Only when I click the delete button on this listing page (resulting in a postback to the same page), the getInitialEntries is called again. However, this will obviously fail, since the userId is not propagated in this (JSF) post action.
The questions:
* Why is a new blogList component not created instantly after the redirect (the long-running conversation is obviously ended, so in my mind it would be impossible to render the blog.xhtml case without constructing a new blogList component)
* I could solve this by trying to hack the userId get-parameter into the action of all the buttons on the page... I haven't succeeded in that yet, and it would be a hack, right?
* Any other ideas how I might solve this?
Thanks,
Sander
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4038440#4038440
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4038440
19 years, 1 month