[JCA/JBoss] - JBoss Connection Socket usage in error scenarios
by dkilley
> JBoss 4.2.1.GA
We have a HA datasource configured with both new-connection-sql and check-valid-connection-sql during a recent problem we noticed less than ideal behaviour, I was hoping someone with deeper knowledge could confirm there is nothing we can configure/control around this (and thus perhaps a bug?).
Firstly our hypothesis, when a connection is successfully made to the DB but the subsequent new-connection-sql FAILS, the object is discarded before closing the socket. Thus the socket will remain open until the next GC.
In our environment, 4k+ sockets can easily be accumilated under heavy load when the DB is down before GC's occur, thus depending on the systems file handle limit you can run out of file handles. Increasing the filehandles seems like cheating and the real solution would be to close the socket before discarding the object.
So here is what we do know, why we are thinking the above:
- Primary DB failed, secondary DB connection was switched to, life is good.
- Sockets to the secondary DB were just fine, but the SQL level check (like select 1) failed, due a permissions issue. The application is not database critical, so functionality could of continued, however each user would go through this same process, each time a socket would be left open, eventually a starvation of file handles happened.
Datasource file
<?xml version="1.0" encoding="UTF-8"?>
<ha-local-tx-datasource>
<jndi-name>blahDS</jndi-name>
<connection-url>database.url</connection-url>
<url-delimiter>|</url-delimiter>
<driver-class>database.driver[JTDS]</driver-class>
<user-name>database.user</user-name>
database.password
<check-valid-connection-sql>SELECT * FROM MonitorTable</check-valid-connection-sql>
<new-connection-sql>SELECT * FROM MonitorTable</new-connection-sql>
<min-pool-size>20</min-pool-size>
<max-pool-size>40</max-pool-size>
<track-statements>warning</track-statements>
<track-connection-by-tx>true</track-connection-by-tx>
<statement-cache-size>20</statement-cache-size>
<set-tx-query-timeout>true</set-tx-query-timeout>
<query-timeout>30</query-timeout>
<background-validation>true</background-validation>
<background-validation-minutes>15</background-validation-minutes>
<idle-timeout-minutes>13</idle-timeout-minutes>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<use-fast-fail>true</use-fast-fail>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
</ha-local-tx-datasource>
Any assistance would be appreciated, just let me know what other information may be appropriate.
Thanks
Dan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144651#4144651
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144651
18 years, 3 months
[JBoss Messaging] - Re: Clustered server preference
by chip_schoch
I certainly appreciate your trying to keep me happy, as that is the prime objective. Perhaps you could speak to my wife about that. And in all seriousness, I do appreciate the time you have spent.
Requiring the producer of the messages to be cognizant of how many nodes are in the cluster in order to distribute them round robin is IMHO not a very good solution. Any process producing messages to a clustered queue should not care how many nodes are in the queue.
Furthermore, absent any configuration (MsgSelector, priority etc;) to the contrary, messages should get consumed in the order they were produced. That just makes sense. It's called a Queue. It should act like a queue. To have a queue, that has multiple consumers, have the messages pulled off it in a haphazard order just doesn't make sense to me.
If I am waiting in line (i.e. the queue for our english friends) for a teller at the bank I don't want to see someone (say, the manager) grabbing anyone in the line to go to the next available teller. I would expect that the person who has been in line the longest (i.e. the front of the line) gets the next available teller.
Now of course if I was at the Movies it would be different. There, when I go to get some snacks there are six registers and six lines and I have to pick the line I want. If I get in the shortest line and then the person in front of me has a big order and I end up standing there while the other longer lines go faster, well then I get pissed. I much prefer the single line feeding into all six registers so the person who was there first gets serviced first, regardless of which register it is. Get my drift?
:)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144648#4144648
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144648
18 years, 3 months
[JBoss Messaging] - Re: Clustered server preference
by clebert.suconic@jboss.com
Just a FYI (to keep you happy) I have invested a lot of time on this issue now :-)
Load balancing on the ClusteredConnectionFactory, only guarantees that each cf.createConnection() will point to a different Server. Having said that, a MessageProducer will aways be bound to where its Connection is pointing to.
Also, Messages are aways consumed by local consumers on the cluster preferably. If there are no local consumers, message are redistributed to the cluster.
If you need to guarantee ordering on message redistribution, take a look on this:
http://www.jboss.org/file-access/default/members/jbossmessaging/freezone/...
I have changed your example to send messages on both nodes, and after setting DefaultPreserveOrdering=true, I got the output the way you would expect.
Listener_1 received message: Test_Message_0
| Listener_2 received message: Test_Message_1
| Listener_1 received message: Test_Message_2
| Listener_2 received message: Test_Message_3
| Listener_1 received message: Test_Message_4
| Listener_2 received message: Test_Message_5
| Listener_1 received message: Test_Message_6
| Listener_2 received message: Test_Message_7
| Listener_1 received message: Test_Message_8
| Listener_2 received message: Test_Message_9
| Listener_1 received message: Test_Message_10
| Listener_2 received message: Test_Message_11
| Listener_1 received message: Test_Message_12
| Listener_2 received message: Test_Message_13
| Listener_1 received message: Test_Message_14
| Listener_2 received message: Test_Message_15
| Listener_1 received message: Test_Message_16
| Listener_2 received message: Test_Message_17
| Listener_1 received message: Test_Message_18
| Listener_2 received message: Test_Message_19
| Listener_1 received message: Test_Message_20
| Listener_2 received message: Test_Message_21
| Listener_1 received message: Test_Message_22
| Listener_2 received message: Test_Message_23
| Listener_1 received message: Test_Message_24
| Listener_2 received message: Test_Message_25
| Listener_1 received message: Test_Message_26
| Listener_2 received message: Test_Message_27
| Listener_1 received message: Test_Message_28
| Listener_2 received message: Test_Message_29
| Listener_1 received message: Test_Message_30
| Listener_2 received message: Test_Message_31
| Listener_1 received message: Test_Message_32
| Listener_2 received message: Test_Message_33
| Listener_1 received message: Test_Message_34
| Listener_2 received message: Test_Message_35
| Listener_1 received message: Test_Message_36
| Listener_2 received message: Test_Message_37
| Listener_1 received message: Test_Message_38
| Listener_2 received message: Test_Message_39
| Listener_1 received message: Test_Message_40
| Listener_2 received message: Test_Message_41
| Listener_1 received message: Test_Message_42
| Listener_2 received message: Test_Message_43
| Listener_1 received message: Test_Message_44
| Listener_2 received message: Test_Message_45
| Listener_1 received message: Test_Message_46
| Listener_2 received message: Test_Message_47
| Listener_1 received message: Test_Message_48
| Listener_2 received message: Test_Message_49
|
I really hate posting a full source code on the forum.. but I will open an exception now:
|
|
| import java.util.Properties;
|
| import javax.jms.*;
| import javax.jms.ConnectionFactory;
| import javax.jms.JMSException;
| import javax.jms.Message;
| import javax.jms.MessageConsumer;
| import javax.jms.MessageListener;
| import javax.jms.MessageProducer;
| import javax.jms.Queue;
| import javax.jms.QueueSession;
| import javax.jms.Session;
| import javax.jms.TextMessage;
|
| import javax.naming.Context;
| import javax.naming.InitialContext;
| import javax.naming.NamingException;
|
|
| /**
| * Class JBMTest
| */
|
| public class JBMTest
| {
| static Queue m_producerQueue = null;
| static InitialContext m_initialContext_1 = null;
| static ConnectionFactory m_factory_1 = null;
|
| /**
| * Method: initialize
| *
| *
| * @throws NamingException
| */
|
| static void initialize () throws NamingException
| {
| Properties p = new Properties ();
| p.put (Context.PROVIDER_URL, "jnp://10.61.5.1.int:1100");
| p.put (Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
| p.put (Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
|
| m_initialContext_1 = new InitialContext (p);
| m_factory_1 = (ConnectionFactory) m_initialContext_1.lookup ("/ClusteredConnectionFactory");
|
|
| }
|
| /**
| * Method: main
| *
| *
| * @param args
| */
|
| public static void main (String[] args)
| {
| JBMTest tester = null;
| try
| {
| initialize ();
|
| tester = new JBMTest ();
| tester.sendMessages (50);
| tester.consumeMessages (50);
|
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| finally
| {
| try
| {
| if (tester != null)
| tester.cleanup ();
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| }
| }
|
| /**
| * Method: cleanup
| *
| *
| * @throws JMSException
| */
|
| void cleanup () throws JMSException
| {
| }
|
| /**
| * Method: consumeMessages
| *
| *
| * @param count
| */
|
| void consumeMessages (int count)
| {
| TestListener listener1 = null;
| TestListener listener2 = null;
|
| try
| {
| listener1 = new TestListener ("Listener_1", m_initialContext_1, m_factory_1);
| listener2 = new TestListener ("Listener_2", m_initialContext_1, m_factory_1);
| listener1.m_jmsConnection.start ();
| listener2.m_jmsConnection.start ();
|
|
| while ((listener1.m_count + listener2.m_count) < count)
| {
| Thread.sleep (1000);
| }
|
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| finally
| {
| try
| {
| if (listener1 != null)
| listener1.cleanup ();
|
| if (listener2 != null)
| listener2.cleanup ();
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| }
| }
|
| /**
| * Method: sendMessages
| *
| *
| * @param count
| */
|
| void sendMessages (int count)
| {
| try
| {
| m_producerQueue = (Queue) m_initialContext_1.lookup ("/queue/testDistributedQueue");
| Connection conn1 = m_factory_1.createConnection ();
| Session session1 = (QueueSession) conn1.createSession (false, Session.AUTO_ACKNOWLEDGE);
| MessageProducer producer1 = session1.createProducer (m_producerQueue);
|
| Connection conn2 = m_factory_1.createConnection ();
| Session session2 = (QueueSession) conn2.createSession (false, Session.AUTO_ACKNOWLEDGE);
| MessageProducer producer2 = session2.createProducer (m_producerQueue);
|
| for (int i = 0; i < count; i++)
| {
| System.out.println("Queueing message: Test_Message_" + i);
| System.out.flush();
| TextMessage tm = session1.createTextMessage ("Test_Message_" + i);
| if (i%2 == 0)
| {
| producer1.send (tm);
| }
| else
| {
| producer2.send (tm);
| }
| }
|
| conn1.close();
|
| conn2.close();
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| }
| }
|
| /**
| * Class TestListener
| */
|
| class TestListener implements MessageListener
| {
| int m_count = 0;
| MessageConsumer m_consumer = null;
| Queue m_responseQueue = null;
| Connection m_jmsConnection = null;
| QueueSession m_jmsSession = null;
| String m_name = null;
|
| /**
| * Constructor: TestListener
| *
| *
| * @param name
| * @param ic
| * @param factory
| *
| * @throws JMSException
| * @throws NamingException
| */
|
| TestListener (String name,
| InitialContext ic,
| ConnectionFactory factory) throws NamingException, JMSException
| {
| m_responseQueue = (Queue) ic.lookup ("/queue/testDistributedQueue");
| m_jmsConnection = factory.createConnection ();
| m_jmsSession = (QueueSession) m_jmsConnection.createSession (false, Session.AUTO_ACKNOWLEDGE);
| m_consumer = m_jmsSession.createConsumer (m_responseQueue);
| m_consumer.setMessageListener (this);
| m_name = name;
| }
|
| /**
| * Method: cleanup
| *
| *
| * @throws JMSException
| */
|
| void cleanup () throws JMSException
| {
| if (m_consumer != null)
| m_consumer.close ();
| if (m_jmsSession != null)
| m_jmsSession.close ();
| if (m_jmsConnection != null)
| m_jmsConnection.close ();
| }
|
| /**
| * Method: onMessage
| *
| *
| * @param arg0
| */
|
| public void onMessage (Message arg0)
| {
| try
| {
| TextMessage msg = (TextMessage) arg0;
| System.out.println(m_name + " received message: " + msg.getText ());
| Thread.sleep (1000);
| msg.acknowledge();
| m_count++;
| }
| catch (Exception e)
| {
| e.printStackTrace();
| }
| }
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144643#4144643
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144643
18 years, 3 months
[EJB 3.0] - problem passivating SFSB
by asookazian
I have a Seam2.0.0.GA app with JBoss4.2.1.GA. This particular SFSB has the following instance variables defined and I added a @PrePassivate callback handler method to close and null out JDBC related objects, etc.
What are you supposed to do with List objects that are not serializable??
SFSB partial code:
| @Stateful
| //AS 041508 - testing session scope for conversation ended error
| @Scope(ScopeType.SESSION)
| @Name("techDeployToUser")
| public class TechDeployToUserAction implements TechDeployToUserLocal{
|
| @Logger
| Log log; //externalizable (according to Pete Muir) which implements serializable
|
| @In
| private FacesMessages facesMessages; //serializable
|
| @In
| Identity identity; //serializable
|
| @In (required=false)
| UTbUser user; //serializable
|
| @In
| Context sessionContext; //not serializable
|
| private List<TbHardwareObject> hardwareTableList = new ArrayList(); //not serializable
| private List<TbHardwareObject> locationsList = new ArrayList(); //not serializable
| private List<TbHardwareObject> userLocEquipList = new ArrayList(); //not serializable
| private List<TbHardwareObject> newlyAssignedByTechEquipList= new ArrayList(); //not serializable
| private List<TbHardwareObject> removedFromUserEquipList = new ArrayList(); //not serializable
|
| Connection con = null; //not serializable
| Statement stmt = null; //not serializable
| PreparedStatement preparedStmt = null; //not serializable
| ResultSet rs = null; //not serializable
| StringBuffer sqlStringBuffer = null; //serializable
|
| List assignedToTechHardwareList = new ArrayList(); //not serializable
| String locNo; //serializable
| String techLocMsg = ""; //serializable
| String userLocMsg = SHIMSConstants.USER_MSG; //serializable
|
| String month="", day="", year="", localAssignedDate=""; //serializable
| Map params; //not serializable
|
| String msgConfirm; //serializable
| String compId; //serializable
| String compMsg; //serializable
| String techLocationName; //serializable
| String userLocationName; //serializable
| String networkLogin; //serializable
|
| boolean isAssignToTechBtn = true; // n/a
| boolean isSubmitByTechBtn = true; // n/a
|
| Date now = new Date(); //serializable
| TbLocationEntityDAO tbLocationDAO = null; //not serializable
| TbHardwareObject tbHardwareObject = null; //not serializable
| ...
| }
more partial code:
| @PrePassivate
| private void cleanupBeforePassivation() {
| log.info("inside cleanupBeforePassivation()");
| cleanUp();
| con = null;
| stmt = null;
| preparedStmt = null;
| rs = null;
| }
partial stack trace:
2008-04-16 13:27:28,543 ERROR [org.jboss.ejb3.cache.simple.SimpleStatefulCache.TechDeployToUserAction] problem passivation thread
| javax.ejb.EJBException: Could not passivate; failed to save state
| at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:406)
| at org.jboss.ejb3.cache.simple.SimpleStatefulCache.passivate(SimpleStatefulCache.java:301)
| at org.jboss.ejb3.cache.simple.SimpleStatefulCache$SessionTimeoutTask.run(SimpleStatefulCache.java:209)
| Caused by: java.io.IOException
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:110)
| at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:101)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:110)
| at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:101)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:181)
| at java.io.ObjectOutputStream.writeObject(Unknown Source)
| at org.jboss.serial.io.MarshalledObject.<init>(MarshalledObject.java:51)
| at org.jboss.ejb3.stateful.StatefulBeanContext.writeExternal(StatefulBeanContext.java:842)
| at org.jboss.serial.persister.ExternalizePersister.writeData(ExternalizePersister.java:58)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.io.JBossObjectOutputStream.writeObjectOverride(JBossObjectOutputStream.java:181)
| at java.io.ObjectOutputStream.writeObject(Unknown Source)
| at org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.passivateSession(StatefulSessionFilePersistenceManager.java:390)
| ... 2 more
| Caused by: java.lang.reflect.InvocationTargetException
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
| ... 94 more
| Caused by: java.io.IOException
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
| at java.io.ObjectOutputStream.writeObject(Unknown Source)
| at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.writeObject(ConcurrentReaderHashMap.java:1230)
| ... 99 more
| Caused by: java.lang.reflect.InvocationTargetException
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
| ... 106 more
| Caused by: java.io.IOException
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
| at java.io.ObjectOutputStream.writeObject(Unknown Source)
| at EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap.writeObject(ConcurrentReaderHashMap.java:1230)
| ... 111 more
| Caused by: java.lang.reflect.InvocationTargetException
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
| ... 143 more
| Caused by: java.io.IOException
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
| at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
| at java.io.ObjectOutputStream.writeObject(Unknown Source)
| at EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArrayList.writeObject(CopyOnWriteArrayList.java:772)
| ... 148 more
| Caused by: java.lang.reflect.InvocationTargetException
| at sun.reflect.GeneratedMethodAccessor313.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
| ... 165 more
| Caused by: java.lang.NoClassDefFoundError: org/jaxen/VariableContext
| at java.lang.Class.getDeclaredMethods0(Native Method)
| at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
| at java.lang.Class.getDeclaredMethod(Unknown Source)
| at org.jboss.serial.classmetamodel.ClassMetaData.lookupMethodOnHierarchy(ClassMetaData.java:102)
| at org.jboss.serial.classmetamodel.ClassMetaData.lookupInternalMethods(ClassMetaData.java:432)
| at org.jboss.serial.classmetamodel.ClassMetaData.<init>(ClassMetaData.java:122)
| at org.jboss.serial.classmetamodel.ClassMetamodelFactory.getClassMetaData(ClassMetamodelFactory.java:350)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:168)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.ArrayPersister.saveObjectArray(ArrayPersister.java:110)
| at org.jboss.serial.persister.ArrayPersister.writeData(ArrayPersister.java:101)
| at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
| at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
| at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
| at org.jboss.serial.persister.ObjectOutputStreamProxy.writeFields(ObjectOutputStreamProxy.java:79)
| at org.jboss.serial.persister.ObjectOutputStreamProxy.defaultWriteObject(ObjectOutputStreamProxy.java:68)
| at java.util.Vector.writeObject(Unknown Source)
| ... 169 more
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4144642#4144642
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4144642
18 years, 3 months