Notification not using Sun Message Queue?

WHen I was in the MS land, I used MSMQ and SQL Server system procedures to
deliver emails when certain events occur. Now I am in Oracle, the Sun MQ costs
$4K/CPU... Any way I could achive this without spending the money on Sun MQ?
Thanks.
- Zack

Hi,
you can write some procedure/package/trigger to call the utl_smtp package to send the email messages when an event occurs.
thanks
srinivas.

Similar Messages

  • Propagating  AQ  messages to Sun messaging queue

    We have a business requirement to sync our application data with external application (.NET). Our approach is to use Oracle streams AQ and propagate the message to external Sun messaging queue.We are planing to write MDB for AQ messages and place this message on to Sun messaging Queue. Is there any easy approach to propagate the meesage from AQ to Sun messaging queue? I guess Oracle gateway message adapter supports only MQ series and TIBCO queues.
    Thanks,
    Manu

    So far 50 people have viewed your posting and not replied so I'm going to throw in my two cents.
    You have, in a single post devoid of version numbers, mentioned:
    DOT NET
    AQ
    TIBCO
    MQ
    Sun
    MDB
    My impression is that you are grossly over-complicating something but having not given a business case I have no idea what that something is.
    Just taking the first sentence ... please explain how one synchronizes application data with something that is a software component. That statement communicates nothing from which someone can give you any advice.

  • Xletview: why not use sun's javaTV source code directly ?

    xletview : one emulator for viewing MHP Xlets on a PC;
    I see many difference from sun's code about the part of javaTV.
    Why the author Martin Sveden need to rewrite them and not use sun's javaTV source code directly ?
    Thank you for your any answer.
    Sorry for my horrible english.

    XleView is a fine effort, but it has its limitations. I tried using it for the GunBunny demo available in the JavaME SDK 3.0 Eary Access available in
    http://java.sun.com/javame/downloads/sdk30ea.jsp
    and I encountered some of thost limitations. What Sveden does it several tricky manipulations in a classloader for the Xlet. In particular, he translates bytecode as he loads the Xlet's classes, changing some class names, such as changing
    java.awt.Toolkit
    tto
    xjava.awt.Toolkit
    This works up to a point. This version of Toolkit usually just turns around calls java.awt.Toolkit's corresponding routine, but he deliberately he does not implement the ubiquitous
    public Image createImage(URL url)
    When I downloaded his source and tried adding ths into his code, I then encountered at runtime
    Uncaught error fetching image:
    java.lang.NullPointerException
    at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    I think that this is some optimization within J2SE where they do not wait for the image to load and do the fetching in a separate thread. I do not know if there is some way to force the Sun's JVM to disable this optimization and I have not investigated furher, but I did email Svenden. I noticed that the current version of XleTView is 0.3.6 which is dated June 2004 and the web site http://www.xletview.org/ has had not news since 2005 .
    I note that Svenden provides an elegant user interface but I advise you not try to learn the API's from his classes: he makes no effort to keep his implementation separate from the API standards so, for instance, his version of HScene is
    package org.havi.ui;
    public class HScene extends Container
    implements HComponentOrdering, ImageObserver, MenuContainer, Serializable {
    whereas the real standard is
    public class HScene extends Container
    implements HComponentOrdering {
    I hate to critize such a fine effort, but it is best to keep an imlementation separate from the public API.
    I agree that having a lightweight, simple and Java feature-complete Xlet viewer running would be very helpful, especially if BD-J gains much popularity. I have found trying to work with the vendor players described at
    http://wiki.java.net/bin/view/Mobileandembedded/Blu-RayDiscHelloWorld
    to be frustrating. I tried all four mentioned and I have gotten none of them to work for me yet. These are huge downloads and the "Intro Version" of Arcsoft pointed to at the SDK 3.0 Early Access page
    http://www.arcsoft.com/products/totalmediatheatre/
    just gives a "File not found" HTML page. This forum post mentions that perhaps it was recently taken down?
    http://www.arcsoft.com/forum/forum_posts.asp?TID=1084
    I have already emailed Michael Downs of Arcsoft since he is mentioned here:
    http://wiki.java.net/bin/view/Mobileandembedded/BDJPCPlayers
    What did work for me was to take Sun's JavaTV 1.1 Reference Implementation and PowerDVD's BDJ.jar and hack/fix a few classes to get GunBunny to work within the RI's RunXlet program. This is not trivial but I will will describe:
    Download the JavaME 3.0 SDK EA and then download the correct version of PowerDVD that the SDK page points to:
    http://www.brothersoft.com/powerdvd-download-50794.html
    Download the RI binary and source of Java TV API 1.1
    http://java.sun.com/javame/technology/javatv/index.jsp
    Since I am too lazy to use anything but the latest 1.6 JRE as a runtime, I have to fix
    com.sun.tv.media.util.MediaThread
    to comment out its stop() method. This is becase stop() was deprecated and made final in J2SE 1.5
    http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#stop()
    http://java.sun.com/j2se/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
    Next, I had to mae a change to Sun's JavaTV implementation to keep the GunBunny demo happy by providing a ServiceContext. The RunXlet program calls SIEmulator, but that environment does not provide a ServiceContex, so I added one back in:
    com.sun.tv.receiver.SIEmulator
    private static ServiceContext svcctx = null;
    Add before every call to new AppSignalEvent() and add the svcctx as the second-to-last argument:
    if(svcctx == null){ try { svcctx = new com.sun.tv.ServiceContextImpl(); }catch (Exception e){ e.printStackTrace(); } }
    I then had to hack a few PowerDVD classes, which is evil of me. First, I had to build an empty class by the name of
    sun.util.BDJPlugin
    becuase some PowerDVD class extends it but it is not in its BDJ.jar and then I had to reverse-compile (evil!) and modify one of their internal classes to avoid a dependency on their native methods. What I ended up with was a hacked version of com.cl.bdj.helper.CUtil to avoid the native methods which access the registry where they query for registry settings but also provide a default value (which I return).
    com.cl.bdj.helper.CUtil
    private static String pGetRegistryString(long i ,String string ,String string3) {
    return string3;
    private static int pGetRegistryInt(long i ,String string ,int j) {
    return j;
    The last thing I had to do was to change com.hdccookbook.gunbunny.BaseXlet, to use the JavaTV container rather than the org.havi one:
    import javax.tv.graphics.TVContainer;
    import java.awt.Container;
    change
    // protected HScene scene;
    protected Container scene;
    public final void run() {
    // waitForPresenting();
    // scene = HSceneFactory.getInstance().getDefaultHScene();
    scene = TVContainer.getRootContainer(xletContext);
    In order to having working keys, I had to add the KeyListener interface to BaseXet and
    run(){
    addKeyListener(this);
    and then add a near duplicate of the org.dvb.event.UserEvent* stuff that is already there:
    public void keyPressed(KeyEvent e){
    switch(e.getKeyCode()){
    case KeyEvent.VK_0:
    case KeyEvent.VK_1:
    case KeyEvent.VK_2:
    case KeyEvent.VK_3:
    case KeyEvent.VK_4:
    case KeyEvent.VK_5:
    case KeyEvent.VK_6:
    case KeyEvent.VK_7:
    case KeyEvent.VK_8:
    case KeyEvent.VK_9:
    numberKeyPressed(e.getKeyCode() - KeyEvent.VK_0);
    break;
    case KeyEvent.VK_ENTER:
    enterKeyPressed();
    break;
    case KeyEvent.VK_LEFT:
    arrowLeftKeyPressed();
    break;
    case KeyEvent.VK_RIGHT:
    arrowRightPressed();
    break;
    case KeyEvent.VK_UP:
    arrowUpPressed();
    break;
    case KeyEvent.VK_DOWN:
    arrowDownPressed();
    break;
    public void keyReleased(KeyEvent e){
    // System.out.println("Released: e="+e+" code="+e.getKeyCode());
    public void keyTyped(KeyEvent e) {
    // System.out.println("Typed: e="+e+" code="+e.getKeyCode());
    It then comes up and functions, but the rendering is not very good. Again, this is complete hack. Running the Java TV 1.1 RI in a JRE 1.6 is not supported. If you try to run any of the other examples, you will discover that the XML parsing is broken in JRE 1.6 with this message:
    Parsing failed: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequence
    Exception: Invalid byte 1 of 1-byte UTF-8 sequence., file: lib\JavaTVSampleFile01.xml
    and you have to go and change the lines in
    lib\JavaTV.properties
    from
    ServiceFileHandler=com.sun.tv.receiver.ReceiverFile
    # ServiceFileHandler=SampleData_01
    to
    # ServiceFileHandler=com.sun.tv.receiver.ReceiverFile
    ServiceFileHandler=SampleData_01
    and build samples\db\SampleData_01.java and put it in your classpath along with all these other hacks.
    Nonetheless, if you want to develop a somewhat generic Xlet that uses some BD-J features, that is how you might do it. But the moment you exercise anything else in the vendor's BDJ.jar that simply doe snot work outside of their environment or invokes one of their native methods, you are again stuck.
    It would be nice if Sun would at least bother to update the JavaTV RI with the fixes I hae mentioned. Their "jmflite" implementation does not render perfecly but at least it would give the programmer something to work with without having to deal with an older JRE, etc.
    Andrew
    Edited by: AndrewMorrow on Oct 20, 2008 2:48 AM

  • Using Microsoft Message Queues (MSMQ) with LabVIEW

    I want to use the Microsoft Message Queue to communicate between applications on different machines. Does anybody have experience in using the MSMQ with Labview (in the .NET framework)? How do I send messages? The MessageQueue.Send method requires an object, and I don't know how to create this object format.
    This question was asked several years ago on this forum and no answer was given.
    I would appreciate any examples of Create a Queue, Delete a Queue,  Send a Message, and Read a Message in LabVIEW 7 or earlier.
    Thanks,

    P.C.
    I'm a little confused by what you mean.  I thought you were sending messages through the MSMQ, but the code there would receive a message, get the body, then display the body of the message.  The Object that the invoke node refers to is the Body of the Message, which has no properties, but has a few methods like ToString that you can use to get the string from the Body. 
    You need to wire up the references into the invoke and property nodes to get the selection of the methods or properties that are available.  Do they just not appear when you are using the invoke node with a reference to the body?
    Message Edited by Coal Man on 06-04-2007 01:56 PM
    Brian Coalson
    Software Engineer
    National Instruments
    Attachments:
    msmq.Jpg ‏40 KB

  • Sun Messaging Queue (Sun MQ) Connectivity Error - recv failed

    Dear Readers
    I am using following code to connect to SUN MQ Server.
    I only have IP Address, Port number and username password of server. JMS Server has three brokers having their own ports.
    com.sun.messaging.ConnectionFactory myConnFactory = new com.sun.messaging.ConnectionFactory();
    myConnFactory.setProperty(com.sun.messaging.ConnectionConfiguration.imqBrokerHostName,"19.11.12.3");
    myConnFactory.setProperty(com.sun.messaging.ConnectionConfiguration.imqBrokerHostPort,"141");
    myConnFactory.setProperty(com.sun.messaging.ConnectionConfiguration.imqDefaultUsername,"ad1min");
    myConnFactory.setProperty(com.sun.messaging.ConnectionConfiguration.imqDefaultPassword,"ad1min");
    Connection myConn = myConnFactory.createConnection();
    but when i try to run this code the exception comes given below
    After then i just commented Hostname and Port section and added following to it:
    myConnFactory.setProperty(com.sun.messaging.ConnectionConfiguration.imqAddressList,  "mq://19.11.12.3:141");
    but i got same exception with slight difference:
    Exception:
    +15 Feb, 2013 12:32:08 PM com.sun.messaging.jmq.jmsclient.ExceptionHandler throwConnectionException+
    +Exception occurred : com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection creation [19.11.12.3:141]. - cause: java.net.SocketException: Software caused connection abort: recv failed+
    +WARNING: [C4003]: Error occurred on connection creation [19.11.12.3:141]. - cause: java.net.SocketException: Software caused connection abort: recv failed+
    +com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection creation [19.11.12.3:141]. - cause: java.net.SocketException: Software caused connection abort: recv failed+
    at com.sun.messaging.jmq.jmsclient.ExceptionHandler.throwConnectionException(ExceptionHandler.java:274)
    at com.sun.messaging.jmq.jmsclient.ExceptionHandler.handleConnectException(ExceptionHandler.java:220)
    at com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:241)
    at com.sun.messaging.jmq.jmsclient.PortMapperClient.init(PortMapperClient.java:150)
    at com.sun.messaging.jmq.jmsclient.PortMapperClient.<init>(PortMapperClient.java:92)
    at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPConnectionHandler.<init>(TCPConnectionHandler.java:164)
    at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler.openConnection(TCPStreamHandler.java:135)
    at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:778)
    at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:254)
    at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:208)
    at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:158)
    at com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:816)
    at com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1529)
    at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2327)
    at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1024)
    at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:418)
    at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:60)
    at com.sun.messaging.BasicConnectionFactory.createConnection(BasicConnectionFactory.java:147)
    at com.sun.messaging.BasicConnectionFactory.createConnection(BasicConnectionFactory.java:132)
    at demo.JAMS.main(JAMS.java:31)
    Caused by: java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at com.sun.messaging.jmq.io.PortMapperTable.readLine(PortMapperTable.java:310)
    at com.sun.messaging.jmq.io.PortMapperTable.read(PortMapperTable.java:266)
    at com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:235)
    +... 17 more+
    I also used imqadmin command and tried same credentials from console but i got same error
    Anyone please guide me what issue is actually?
    Is this server side issue? Is this access rights issue.
    Tried to google it but unable to find correct solutions

    >
    I also used imqadmin command and tried same credentials from console but i got same errorTry using imqcmd
    imqcmd query bkr -b 19.11.12.3:141
    (you will be prompted for user and password)
    Try running this command from your client machine and also from 19.11.12.3 (i.e. locally to the broker)
    This command simply displays a few lines of info about the broker, and is a simple way to confirm that you can connect to the broker.
    >
    Anyone please guide me what issue is actually?
    Is this server side issue? Is this access rights issue.
    Tried to google it but unable to find correct solutionsCan you confirm that the broker listening on 19.11.12.3:141 has started correctly? Have you looked at the broker log? If the broker has started successfully there should be a message something like "Broker "19.11.12.3:141" ready".
    Nigel

  • Can anybody how to loook up in websphere 6.1 using com.sun.messaging.Queue

    Hi,
    Thanks in advance
    I am really new to webservices can any one provide me code for sending a soap object using jms using WebSphere6.1

    don't crosspost.
    And no, noone is going to tell you how to send SOAP messages to a JMS queue (which was what you were asking elsewhere).

  • Production Client Side Apps not using Sun JVM?

    Just wondering if anyone here deploys a non-Sun JVM to client machines?
    The impression I get is that everyone tends to just stick with the Sun JVM because is easily available and reliable.
    However, I'm considering suggesting that our clients move to a different JVM for the performance reasons described below:
    I wrote a series of performance tests to measure the time taken to repeat certain common tasks from our apps. I was surprised to find that the BEA JRockit JVM outperformed the SUn JVM by a long, long way in certain tasks, and was slower in none.
    Here's a selection of (subjective) results:
    Log Lines written per second - Sun 21,000 BEA 29,000
    Time taken to call (100000000) methods - Sun .907s BEA .269s
    Time taken to call (100000000) sync methods - Sun 17s BEA 12.4s
    Time to create big byte array - Sun 125ms BEA 32ms

    i would go for the intel/dual-proc optimisation answer for the difference.
    Although 50%? Logging to files uses most time with file access. Didn't know that was optimized either. (learning new stuff every day :-)
    But then again, 1 great thing about Java: write once, run anywhere (on any JVM, except for mickeysoft: they have their own neat thingie called the M$ VM, which downgrades performance by a 1000% and uses the 1.1.3 spec)
    As a thumb rule: either provide the JVM of your choice to your customers and make it mandatory to use that one, or make sure that it runs with (reasonable) performance under the slowest JVM. (p.s. 99% of the users use the Sun JVM for what i've seen, so if you let your clients choose: Sun's the way to go).

  • NullPointerException in message queue!!!

    I'm using Sun Message Queue 3 3005Q4. I get the following error in one of the queues. The message size and no of messages is evrything in limit. Can anyone tell what this error is about???
    [14/Aug/2006:02:53:44 EDT] [B1065]: Accepting: [email protected]:51890->jms:59200. Count=545
    [14/Aug/2006:02:54:04 EDT] Internal Error Unable to consume [consumer:0, type=CLIENT_ACKNOWLEDGE]:null:
    java.lang.NullPointerException
    Thanks

    I'm using Sun Message Queue 3 3005Q4. I get the
    following error in one of the queues. The message
    size and no of messages is evrything in limit. Can
    anyone tell what this error is about???
    [14/Aug/2006:02:53:44 EDT] [B1065]: Accepting:
    [email protected]:51890->jms:59200. Count=545
    [14/Aug/2006:02:54:04 EDT] Internal Error Unable to
    consume [consumer:0, type=CLIENT_ACKNOWLEDGE]:null:
    java.lang.NullPointerException
    ThanksMy interpretation of that errors is that the acknowledgement mode is null.
    Could it be that you did not specify an acknowledgment mode? i.e:
    subTopic = BusObjectStore.getTopic(jndiTopicName);
                   ts = tc.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
                   tsub = ts.createSubscriber(subTopic);

  • BPE adapter : message not used by any process

    hi frnds,
    I've created 2 scenarios using BPM
    1) merge scenario: 2 msgs ==> BPM ==> 1 msg
    1st msg is going without any problem. but 2nd msg is giving error saying 'BPE ADAPTER ERROR: message not used by any process'. i checked in sxi_cache and found that return code for Intg'n process is 0 only. but still i tried reactivating. but no use
    2) split scenario: 1 msg ==> BPM ==> 2 msgs
    sender msg is going without any problem,but not receiving 2 rcvr msgs to the target directory. return code of IP is 0 and no other errors.
    after installing PI on my system, for the first time i'm trying BPM scenarios. simple file to file working properly. BPE adapter has to be activated manually or i missed any initial configuration??? pls help me to resolve this.
    thanks.

    abhishek,
    I have used the following steps in BPM for this scenario xml file ==> BPM ==>xml file
    1) data types: a)send_dt
                            b) rcv_dt
    2) msg types  a) send_mt
                            b)rcv_mt
    3) interfaces   : send_ob_im
                              send_abs_im
                              rcv_abs_im
                              rcv_ib_im
    in integration process,
    start ==> receive ==> send ==> stop
    so in general its like,
    send CC ==> send OB I/F ==> send ABS I/F ==> rcv ABS I/F ==> rcv IB I/F ==> rcv CC
    when i'm not using BPM, outbound queue SMQ1 is empty and messages are not stickking up there. but if i use BPM, SMQ1 is having entry saying 'SYSFAIL'. for the first time i'm doing  the BPM scenarios.
    thanks.

  • Dead message queue

    Intial information:
    SUN MQ 4.3
    Local installation
    Purpose: use dead message queue.
    As per refered in SUN MQ admin guide have updated the broker
    imqcmd update dst -t q -n TestQueue1 -o useDMQ=true
    imqcmd update dst -t q -n TestQueue1 -o MaxBytesPerMsg=150000
    Also java program sending message to the queue and data is of size 171KB(171000)
    With above setting I expect the message to go to mq.sys.dmq, however its not? Any one have answer?
    Or any one have used dead message queue with SUN MQ?
    Any help will be appreciated.
    Madhav
    Edited by: user10111912 on Jan 20, 2011 4:18 PM

    In this case, the message will be rejected, that is it does not get into the destination, which is different from a message in the destination becomes "dead" - dead message.

  • Message queues and expiry *HELP*

    My problem is hopefully a simple one to overcome. Without going totally in depth, i have a Server program that creates JMS Object messages and sends them off to a message Queue. Then i have another program, a client, that recieves and processes the object messages accordingly.
    In my case, the server and the client will be on diferent sides of a erroneous wireless setup.
    Basically i want messages to be recieved if, and ONLY if, there is a complete connection to the client, if there is no connection there i want the message to expire. I tried using timeToLive(), but that will not suffice, as there is no way i can tell how long the message will take to reach the JMS provvider, and hence the client.
    Also in using a message Queue the unrecieved messages build up and the latest messages will not be recieved until all outdated ones are recieved. Is there another generic sort of connection that doesn not allow for the build up of messages? unlike topic and queue?

    Hi.
    Strange, you are describing the correct behavior for JMS.
    The simplest way will be to not use JMS at all.
    Since you can't (via JMS) check the connection status, you'd either have to do it
    via the provider's mechanism, or use the TTL.
    As for the queue you are using for the unreceived messages - thar's also a TTL issue. Set a TTL
    and the queue will clear up.
    It might be worthwhile to look into the provider's admin options - perhaps you may be ablr to set ttl at
    the provider itself, which will mean that you don't mind how long it takes the message to get to the provider - only how long it takes it from the provider to the destination.
    Nimo.

  • Message Queue vs RFC Queue

    Can anyone tell me what's the difference between Message Que and RFC Queue?
    Thanks
    Mark

    Dear,
    Connectionless programming involves using a queue to hold user input to another application or server. Here, we may not have a permanent connection to the application or server. Instead you log your input in a queue and the other application or server then takes it from the queue, processes it, and sometimes it may put the result back to the same queue or to a different queue. Unlike UDP, here there is no chance of message or data loss once you log it into queues.
    The Connection oriented is different from the aforementioned and talks about any standard database system (DBMS, RDBMS, OODBMS and ORDBMS) available these days. Presumably, I don't think that there should be an explanation required for connection oriented programming. Unlike TCP/IP, there is no chance of data packet loss and it will bring the data packet to the required destination.
    In short, message queue is purely connectionless and gives an assurance that it won't lose any data which is in the queue.
    Message queue will be used :
    a.Storing insignificant information in the message queue while your database server is busy with other real time processing.
    b.Process user input which is given by the user after getting supporting information from other source or applications that are not active or ready at this stage.
    c.Because of database server outage, you might require keeping user input in the message queue and processing it as and when the database comes online.
    d.Exchanging data with a mainframe system like SAP. Personally, the real time communication with SAP is often a problem. In such cases, the SAP system uses message queue for storing and forwarding information where real time communication is not possible at that time.
    RFC Queue:
    Communication between applications in different systems in the SAP environment includes connections between SAP systems as well as between SAP systems and non-SAP systems. Remote Function Call (RFC) is the standard SAP interface for communication between SAP systems. RFC calls a function to be executed in a remote system.
    In short, essentially application infrastructure and business requirements determine whether you should use a message queue or not. Personally, I would suggest that itu2019s a good idea to work with a tool for a while so that you can get to the solution in which you should use it.
    http://help.sap.com/SAPhelp_nw04/helpdata/en/6f/1bd5b6a85b11d6b28500508b5d5211/content.htm
    Regards,
    Syed Hussain.

  • Problem with GlassFish and Sun Java System Message Queue

    Hi,
    I used application server PE.8 and I upgraded to Sun Java System Application Server Platform Edition 9.0 Update 1 Patch 1, and I changed all my CLASSPATH and everything. My system is working fine, but the Sun Java System Message Queue that I used before is still showing the queues and physical queues of the previous application server, not the new one. Do you know if there is way to change that and link it to the new version?
    thanks

    Use an ESB like ServiceMix to bridge JMS providers
    http://servicemix.org/
    Or write your own MessageListener to consume from one JMS and publish on another one. Be careful with queues to avoid loosing the ordering - so you probably want to use a single MessageListener per subscription/queue - or to take advantage of Tibco's exclusive queues to ensure ordering is preserved. If ordering doesn't matter then don't worry too much about it and maybe have a pool of consumers to improve throughput
    James
    http://logicblaze.com/

  • Clean up queue in SUN Messaging Server 6.3

    I have a couple of SUN Messaging servers with each about a 1'000'000 e-mail messages in their queues.
    The reason is one of our customers being infected with some trojan, and a firewall misconfiguration which allowed direct access to the SUN messagings servers (where we host our customers mailboxes) , rather then through the Postfix boxes with rate limiting, anti-spam and anti-virus scanning which they are supposed to use as outgoing SMTP servers. In short we were used as a SPAM relay. Grrr.
    As you can image the queue is now filled with undeliverable e-mail and undeliverable bounces.
    The question is simply can I safely delete the offending messages from the queue directory, because the imsimta qclean does a lousy job.
    imsimta qclean -content=<IP-OFFENDER> -delete* found only 75'000 messages from which 20% was removed. A simple grep <IP-OFFENDER> found still thousand of messages in the queue.
    Arg, by default imsimta qclean only scans message ID's found in it's own database which is limited in size (and much smaller then our actual queue size)
    imsimta qclean -content=<IP-OFFENDER> -directory_tree -delete* scans the actual queue directory and found indeed over a million mail messages in the queue. After scanning for a couple of hours it removed 150'000 messages. Leaving about 85% of the spam mails untouched!
    Is it safe to simply use a shell script to find and remove the messages in the queue directory and delete them? Or will that break SUN messaging servers internal queue handler?
    TIA
    Herman

    Hi,
    hbruijn wrote:
    The reason is one of our customers being infected with some trojan, and a firewall misconfiguration which allowed direct access to the SUN messagings servers (where we host our customers mailboxes) , rather then through the Postfix boxes with rate limiting, anti-spam and anti-virus scanning which they are supposed to use as outgoing SMTP servers. In short we were used as a SPAM relay. Grrr.As an aside, Messaging Server 6.3 also offers rate-limiting capability (metermaid) and various anti-virus/anti-spam capability. I wrote up a general document about this at:
    http://msg.wikidoc.info/index.php/Main_Page
    As you can image the queue is now filled with undeliverable e-mail and undeliverable bounces. You are not the only forum person to hit such an issue recently:
    http://forum.java.sun.com/thread.jspa?threadID=5210669&messageID=9848719
    The question is simply can I safely delete the offending messages from the queue directory, because the imsimta qclean does a lousy job. Yes. If the job_controller sees that the message has been deleted, it will simply remove the queued message from its cache and move on. Depending on your log level you may see an entry in the imta log file about this.. something along the lines of file <queue file> no longer exists.
    imsimta qclean -content=<IP-OFFENDER> -delete* found only 75'000 messages from which 20% was removed. A simple grep <IP-OFFENDER> found still thousand of messages in the queue.
    Arg, by default imsimta qclean only scans message ID's found in it's own database which is limited in size (and much smaller then our actual queue size)By default the job_controller will only keep a maximum of 100,000 messages in cache - a percentage of this is dedicated towards new emails and the rest is queued emails. This limit is to stop the job_controller consuming all your available RAM when you get hit by events such as this. The imsimta qclean uses this cache to search for messages -- which is vastly quicker then (re)scanning so many emails on disk.
    The maximum is controlled by the MAX_MESSAGES job_controller.cnf parameter - discussed here:
    http://docs.sun.com/app/docs/doc/819-4428/6n6j425uh?l=en&a=view&q=max_messages
    and here:
    http://docs.sun.com/app/docs/doc/819-4428/6n6j425v7?l=en&a=view#bgajv
    imsimta qclean -content=<IP-OFFENDER> -directory_tree -delete* scans the actual queue directory and found indeed over a million mail messages in the queue. After scanning for a couple of hours it removed 150'000 messages. Leaving about 85% of the spam mails untouched! Well I can't explain this off-hand. I would need to try and reproduce the issue in-house with an example email that wasn't matched. What version of MS6.3 are you running (./imsimta version)?
    btw. you can use the "-threads=<number from 1-8>" qclean command to speed up the scanning process by running multiple scanning threads.
    Is it safe to simply use a shell script to find and remove the messages in the queue directory and delete them? Or will that break SUN messaging servers internal queue handler?Should be fine - once you have removed them though you may want to run:
    ./imsimta cache -sync
    This will kick-off a re-sync of the job_controller cache so that the job_controller is better able to process the remaining emails (rather then hitting missing email after missing email).
    Regards,
    Shane.

  • HTTP transport  and Sun ONE Message Queue

    How do I get the HTTP transport to work? The docs don't seem to be correct.

    There are a couple of errors in the Sun ONE Message Queue docs that shipped with
    the product.
    The following are corrections for those errors.
    Servlet configuration
    Please note the following correction in the Sun ONE Message Queue 2.0
    Administration Guide, Appendix B -
    The class name of the HTTP Servlet in Step 4 of the "Configuring the Tunnel Servlet"
    section is given as:
    com.sun.messging.jmq.transport.httptunnel.servlet.HTTPTunnelServlet
    The correct class name is :
    com.sun.messaging.jmq.transport.httptunnel.servlet.HttpTunnelServlet
    Client setup for HTTP support
    1.The following connection factory attributes must be specified to use the HTTP
    tunnel connection support.
    JMQConnectionType :
    Set this attribute to "HTTP".
    JMQConnectionURL :
    Set this attribute to the URL that will be used to connect to the Sun ONE
    Message Queue message service (i.e. the URL for the HTTP tunnel servlet).
    Note that there is no need to specify the JMQConnectionHandler attribute as
    mentioned in the Sun ONE Message Queue 2.0 Administration Guide -
    Appendix B.
    2.Before running the client application, set the CLASSPATH variable to include
    jmqutil.jar in addition to the standard Sun ONE Message Queue jar files.
    This file is located at "/opt/SUNWjmq/lib/jmqutil.jar".
    If the "jmqutil.jar" file is not included in the CLASSPATH, the client will get a
    "java.lang.NoClassDefFoundError" exception for the class
    "com/sun/messaging/jmq/util/JMQTimerTask".
    3.If you are using an HTTP proxy, set "http.proxyHost" to the proxy server host
    name, and "http.proxyPort" to the proxy server port number using the -D
    command line option.
    An example command line would look like this:
    java -classpath
    /opt/SUNWjmq/lib/jms.jar:/opt/SUNWjmq/lib/jmq.jar:
    /opt/SUNWjmq/lib/jndi.jar:.:/opt/SUNWjmq/lib/jmqutil.jar
    -DJMQConnectionType=HTTP
    -DJMQConnectionURL=http://webserver:80/imq/servlet ClientApplicaiton

Maybe you are looking for