Using Netty from within an Oracle Database

"이희승 (Trustin Lee)" trustin at gmail.com
Tue Oct 25 20:42:20 EDT 2011


This looks really weird. Why is it complaining that it's not a socket 
and it talks about a datagram socket? You obviously created a TCP socket 
in your code. Maybe something else is triggering the exception?

Adrian Nakon wrote:
 > Hi Norman,
 >
 > Thanks for your reply.
 >
 > Here is my code - It's pretty simple (I'm a newbie to Netty) :
 >
 > Any help would be greatly appreciated. :)
 >
 >
 > Thanks,
 >
 > Adrian.
 >
 >
 > ---------------------------------
 >
 >
 > package nclient;
 >
 > /**
 > *
 > * @author ANakon
 > */
 >
 > import java.net.InetSocketAddress;
 > import java.util.Map;
 > import java.util.concurrent.Executors;
 > import org.jboss.netty.bootstrap.ClientBootstrap;
 > import org.jboss.netty.channel.Channel;
 > import org.jboss.netty.channel.ChannelFactory;
 > import org.jboss.netty.channel.ChannelFuture;
 > import org.jboss.netty.channel.ChannelFutureListener;
 > import org.jboss.netty.channel.ChannelPipeline;
 > import org.jboss.netty.channel.ChannelPipelineFactory;
 > import org.jboss.netty.channel.Channels;
 > import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
 >
 >
 > public class NettyClient {
 > static int counter = 0;
 > public static void main(String[] args) throws Exception {
 > String host = args[0];
 > int port = Integer.parseInt(args[1]);
 >
 > ChannelFactory factory =
 > new NioClientSocketChannelFactory(
 > Executors.newCachedThreadPool(),
 > Executors.newCachedThreadPool());
 >
 > ClientBootstrap bootstrap = new ClientBootstrap(factory);
 >
 > bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
 > // @Override
 > public ChannelPipeline getPipeline() {
 > return Channels.pipeline(
 > new TimeDecoder(),
 > new TimeEncoder(),
 > new TimeClientHandler());
 > }
 > });
 > bootstrap.setOption("tcpNoDelay", true);
 > bootstrap.setOption("keepAlive", true);
 >
 > //
 > // Lets loop forever .....
 > //
 > ChannelFuture future;
 > while (true)
 > {
 > //
 > // Send a message to the time server.
 > //
 > //
 > // We're going to use a ChannelFuture here since it allows us to manage
 > // the channel and clean up afterwards.
 > //
 > future = bootstrap.connect(new InetSocketAddress(host, port));
 >
 > //
 > // We have a connection. Send a message to the server.
 > //
 > future.addListener(new ChannelFutureListenerImpl());
 > //
 > // Wait for the returned ChannelFuture to determine if the connection
 > attempt was successful or not.
 > //
 > future.awaitUninterruptibly();
 > //
 > // If failed, we print the cause of the failure to know why it failed.
 > the getCause() method of
 > // ChannelFuture will return the cause of the failure if the
 > connection attempt was neither successful
 > // nor cancelled.
 > //
 > if (!future.isSuccess())
 > {
 > future.getCause().printStackTrace();
 > }
 > //
 > // Sleep for a second before trying again.
 > //
 > Thread.sleep(1000);
 > }
 >
 > }
 >
 > private static class ChannelFutureListenerImpl implements
 > ChannelFutureListener
 > {
 >
 > public ChannelFutureListenerImpl()
 > {
 > }
 >
 > // @Override
 > public void operationComplete(ChannelFuture future) {
 > Channel ch = future.getChannel();
 > String user = System.getenv("USERNAME");
 > String origion = "Hi from the client @ " + user + " - " + counter;
 > counter++;
 > System.out.println("Operation complete connected = : " +
 > ch.isConnected());
 > ChannelFuture f = future.getChannel().write(origion);
 > }
 > }
 > }
 >
 > =====================
 >
 > > Date: Tue, 18 Oct 2011 14:18:00 +0200
 > > Subject: Re: Using Netty from within an Oracle Database
 > > From: norman.maurer at googlemail.com
 > > To: netty-users at lists.jboss.org
 > >
 > > Show us your code...
 > >
 > > Bye,
 > > Norman
 > >
 > >
 > > 2011/10/18 Adrian Nakon <a_p_nakon at hotmail.com>:
 > > > Hi Guys,
 > > > I am trying to get a Netty based client to run from within an Oracle
 > > > Database (Oracle DB uses JVM 1.5).
 > > > So far things are going well, in that I can get classes / jars
 > loaded into
 > > > the DB etc. without error.
 > > > The next thing I'm trying to do is get a connected out from within
 > the DB
 > > > (using Netty) to talk to a
 > > > small Netty service I've written. This service is running on the same
 > > > machine as the DB, so can be
 > > > considered local.
 > > > I am seeing this error, and would appreciate any input. Does this
 > error
 > > > indicate a config error (quite possible!),
 > > > or does it indicate that what I'm trying to do isn't actually
 > possible?
 > > > ---------------
 > > > ORA-29532: Java call terminated by uncaught Java exception:
 > > > org.jboss.netty.channel.ChannelException:
 > java.net.SocketException: Socket
 > > > option not supported by PlainDatagramSocketImp
 > > > Socket operation on non-socket
 > > > ORA-06512: at "COHERENCE.NETTYCLIENT", line 3
 > > > ORA-06512: at line 12
 > > > ----------------
 > > > Many Thanks,
 > > > Adrian.
 > > >
 > > >
 > > >
 > > > =====================
 > > > _______________________________________________
 > > > netty-users mailing list
 > > > netty-users at lists.jboss.org
 > > > https://lists.jboss.org/mailman/listinfo/netty-users
 > > >
 > >
 > > _______________________________________________
 > > netty-users mailing list
 > > netty-users at lists.jboss.org
 > > https://lists.jboss.org/mailman/listinfo/netty-users
 > _______________________________________________
 > netty-users mailing list
 > netty-users at lists.jboss.org
 > https://lists.jboss.org/mailman/listinfo/netty-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20111025/25f8004e/attachment.html 


More information about the netty-users mailing list