You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by frofake <fr...@gmail.com> on 2007/06/20 12:45:40 UTC

Error "Unrecognized Windows Sockets error: -1: socket available"

Scenario: sending 5mb xml files packed as byte JMS message over ServiceMix.

Have one input JMS queue, and two output JMS queues, where WireTap will
dispatch one message to each of the output queues.

Using MySQL 5 as persistence for broker. No error on MySql side, checked all
logs. MySql configured to can handle 5mb messages.

Using single manually started instance of ActiveMq 4.1. Using Sm 3.1.

I correctly handle all JMS in my client code (which sends messages to In
queue). Using auto_ack.

Basically, I send message to IN queue, JMS BC will pick it up, send it to
WireTap, and WireTap will send one to JMS Audit component and JMS Out
component. Both of those components just place messages in the queue
assigned to them (using ServiceMix built in components only).

I have run the same configuration sending thousands of small size messages
with no exception whatsoever. When sending big messages, around 5bm in my
case, I have undeterministic behaviour, with stacktrace shown below,
messages get lost.

Any advice/suggestion appreciated:

==============================================================================================================
internal JMS Network
javax.jms.JMSException: Communications link failure due to underlying
exception: 

** BEGIN NESTED EXCEPTION ** 

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: Unrecognized Windows Sockets error: -1: socket available

STACKTRACE:

java.net.SocketException: Unrecognized Windows Sockets error: -1: socket
available
	at java.net.PlainSocketImpl.socketAvailable(Native Method)
	at java.net.PlainSocketImpl.available(PlainSocketImpl.java:448)
	at java.net.SocketInputStream.available(SocketInputStream.java:217)
	at
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:71)
	at
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
	at
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1910)
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:539)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:971)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
	at
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
	at
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
	at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
	at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:544)
	at
org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:55)
	at
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doAddMessage(DefaultJDBCAdapter.java:165)
	at
org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:69)
	at
org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:224)
	at
org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:117)
	at org.apache.activemq.broker.region.Queue.send(Queue.java:285)
	at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
	at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:377)
	at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
	at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
	at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
	at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
	at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:480)
	at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
	at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
	at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
	at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
	at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
	at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
	at java.lang.Thread.run(Thread.java:595)

Last packet sent to the server was 0 ms ago.
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:569)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:971)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
	at
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
	at
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
	at
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
	at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771)
	at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95)
	at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:544)
	at
org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:55)
	at
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doAddMessage(DefaultJDBCAdapter.java:165)
	at
org.apache.activemq.store.jdbc.JDBCMessageStore.addMessage(JDBCMessageStore.java:69)
	at
org.apache.activemq.store.memory.MemoryTransactionStore.addMessage(MemoryTransactionStore.java:224)
	at
org.apache.activemq.store.memory.MemoryTransactionStore$1.addMessage(MemoryTransactionStore.java:117)
	at org.apache.activemq.broker.region.Queue.send(Queue.java:285)
	at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
	at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:377)
	at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
	at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
	at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
	at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
	at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:480)
	at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
	at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
	at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
	at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
	at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
	at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
	at java.lang.Thread.run(Thread.java:595)


** END NESTED EXCEPTION **

Last packet sent to the server was 16 ms ago.
]
java.lang.UnsupportedOperationException: A destination must be specified.
	at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
	at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:75)
	at org.apache.activemq.pool.PooledProducer.send(PooledProducer.java:60)
	at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
	at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
	at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
	at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
	at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
	at
org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow.access$301(JMSFlow.java:72)
	at org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow$5.run(JMSFlow.java:537)
	at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
	at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
	at java.lang.Thread.run(Unknown Source)
2007-06-20 12:00:58,105 [ow.jms-thread-7] ERROR JmsComponent                  
- Error setting exchange status to ERROR
javax.jbi.messaging.MessagingException: illegal call to send / sendSync
	at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
	at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
	at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
	at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
	at
org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow.access$301(JMSFlow.java:72)
	at org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow$5.run(JMSFlow.java:537)
	at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
	at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
	at java.lang.Thread.run(Unknown Source)

==============================================================================================================





-- 
View this message in context: http://www.nabble.com/Error-%22Unrecognized-Windows-Sockets-error%3A--1%3A-socket-available%22-tf3951597s12049.html#a11210897
Sent from the ServiceMix - User mailing list archive at Nabble.com.