Hello,

I ran a benchmark using Qpid java broker 6.0.4 and the JDBC message store
with an Oracle database.
I tried to send and read 1,000,000 messages to the broker but was not able
to finish the benchmark as there was a StoreException caused by a
java.net.ConnectException (full stack is attached).

I suspected a very high number of connections.

I tried using JDBC with BoneCP and the benchmark finished. I could get the
BoneCP statistics and for 1,000,000 messages, there were 3,000,000 DB
connections requested.

It looks like the broker requests a connection when enqueuing and dequeuing
the message with the JDBC store. Is it a normal behavior?

Also, the benchmark showed that the JDBC store with Oracle was slower than
the BDB store. (an average throughput of 2.8K msg/s vs 5.4K msg/s).
I suspected a degradation as the Oracle store is located on a separate
machine and the broker goes over the network to persist the messages. But
not that much.
Do you know if there is a possible improvement in the JDBC message store
code to narrow the gap?

Thank you in advance,
Best regards,
Antoine
########################################################################
#
# Unhandled Exception org.apache.qpid.server.store.StoreException: 
java.sql.SQLException: The Network Adapter could not establish the connection 
in Thread virtualhost-default-pool-1
#
# Exiting
#
########################################################################
org.apache.qpid.server.store.StoreException: java.sql.SQLException: The Network 
Adapter could not establish the connection
        at 
org.apache.qpid.server.store.AbstractJDBCMessageStore$JDBCTransaction.<init>(AbstractJDBCMessageStore.java:1120)
        at 
org.apache.qpid.server.store.jdbc.GenericAbstractJDBCMessageStore$RecordedJDBCTransaction.<init>(GenericAbstractJDBCMessageStore.java:118)
        at 
org.apache.qpid.server.store.jdbc.GenericAbstractJDBCMessageStore$RecordedJDBCTransaction.<init>(GenericAbstractJDBCMessageStore.java:114)
        at 
org.apache.qpid.server.store.jdbc.GenericAbstractJDBCMessageStore.newTransaction(GenericAbstractJDBCMessageStore.java:110)
        at 
org.apache.qpid.server.txn.AutoCommitTransaction.dequeue(AutoCommitTransaction.java:85)
        at 
org.apache.qpid.server.queue.AbstractQueue.dequeueEntry(AbstractQueue.java:1926)
        at 
org.apache.qpid.server.queue.AbstractQueue.dequeueEntry(AbstractQueue.java:1921)
        at 
org.apache.qpid.server.queue.AbstractQueue.checkMessageStatus(AbstractQueue.java:2521)
        at 
org.apache.qpid.server.virtualhost.AbstractVirtualHost$VirtualHostHouseKeepingTask.execute(AbstractVirtualHost.java:1284)
        at 
org.apache.qpid.server.virtualhost.HouseKeepingTask$1.run(HouseKeepingTask.java:65)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.qpid.server.virtualhost.HouseKeepingTask.run(HouseKeepingTask.java:60)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: The Network Adapter could not establish the 
connection
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
        at 
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
        at 
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at 
org.apache.qpid.server.store.jdbc.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:49)
        at 
org.apache.qpid.server.store.jdbc.GenericJDBCMessageStore.getConnection(GenericJDBCMessageStore.java:121)
        at 
org.apache.qpid.server.store.AbstractJDBCMessageStore.newConnection(AbstractJDBCMessageStore.java:544)
        at 
org.apache.qpid.server.store.AbstractJDBCMessageStore$JDBCTransaction.<init>(AbstractJDBCMessageStore.java:1116)
        ... 18 more
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish 
the connection
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
        at 
oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
        at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
        ... 28 more
Caused by: java.net.ConnectException: Cannot assign requested address (connect 
failed)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
        at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
        at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
        ... 33 more
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to