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