7 Replies Latest reply on Nov 20, 2002 9:16 PM by John Fawcett

    C# JBossMQ client

    John Fawcett Newbie

      I am working on a Windows thick client frontend and a JBoss backend. I'd like to use JBossMQ to deliver asynchronous updates to our C# client. Has anyone investigated this possibility?

      Tibco recently released a C# client for their JMS server, and I am trying to gauge how much work is involved in creating a C# client library for JBossMQ.


        • 1. Re: C# JBossMQ client
          John Fawcett Newbie

          A related question:

          The QuickStart guide mentions that connectionFactory objects can be instantiated without using JNDI - does anyone know how?


          • 2. Re: C# JBossMQ client
            John Fawcett Newbie

            Here is a snippet that instantiates a TopicConnection without using JNDI. Connection is made to a local JBoss3.0.4 instance. This example uses UIL, but you use OIL if you just change the port to 8090, and pretty much put OIL everywhere you see UIL.

            Properties sILprops = new Properties();
            //UIL specific properties
            //genericConnection properites

            connFactory = new SpyConnectionFactory(sILprops);
            tConn = (SpyConnection)connFactory.createTopicConnection("john","needle");

            • 3. Re: C# JBossMQ client
              David VINCENT Newbie

              I'm also interested in using JBoss from a C# application. Something we can do is to try to try to compile the JBOssMQ client Java library with J# (the problem is that the java code must be JDK1.1 compliant).

              Another think would be to write a .Net version of the UIL or OIL IL. If anyone has the exact specification of the serialization protocol I can try to work on that.

              • 4. Re: C# JBossMQ client
                John Fawcett Newbie

                I am working on the UIL protocol. Problem is the protocol mixes writing primitives (byte, int, short) and objects. I am trying to get UIL working on a java client using JSX (object serialization to XML).

                Unfortunately, JSX doesn't handle writing primitives well -- the only alternative I can see is wrapping the primitives into an object. Ideally, I like to find a way to write primitives as primitives and objects as xml strings.

                UIL is further complicated by the multiplexing layer.I made the mistake of diving right into UIL, because my application requires it - OIL may be a simpler first step.

                For each IL, I think there are basically two protocols: ClientIL to ClientILService and ServerIL to ServerILService. for UIL there is the additional multiplexing protocol.

                • 5. progress towards c# client
                  John Fawcett Newbie

                  I re-examined the classes which are directly serialize with writeObject, and most implement externalizable, which means they handle their own serialization with readObject and writeObject. The authors of JBossMQ were very effective in compacting the objects for transport, so the read/writeObject overrides that I have been looking at use primaries only.

                  The few classes which do not override read/write would be pretty easy to extend to include the overrides. So I think it may be possible to use the UIL nearly as is.

                  To that end, I have ported the org.jboss.mq.il.uil.multiplexor package to C#. Currently, the classes run and pass the unit test included with the JBoss3.0.4 source distribution (though I had to also port the test to C#...). I will try muxed communication over the wire with a java test class shortly.

                  anyone interested in helping with port of the remaining UIL classes?

                  • 6. Re: C# JBossMQ client
                    David VINCENT Newbie

                    Greetings !!

                    I'm very interesting in helping you to make something to port the IL. How can we proceed ?