Java JMS API vs. RAC FCF features

Hello,
I have a JAVA application with queue consumer using the JMS API (JMS text message is the queue payload). On the other hand, I'd like to take advantage of the FCF: to use UCP with FCF enabled as the data source. When the physical connection to the DB fails, I'd like to reconnect and reestablish the queue consumer functionality. But I don't know, how to invent the JDBC connection is broken? In the JMS API I have only javax.jms.QueueConnection (or oracle.jms.AQjmsConnection actually). From that object, I don't have access to the Connection object. The FCF standard way to verify the connection is:
((oracle.ucp.jdbc.ValidConnection)conn).isValid()
But this may be done with conn as Connection object. How can I do connection validation having AQjmsConnection object only?
Any help appreciated, thanks in advance.

Finally I found the answer by myself :)
The db connection object may be obtain from the queue session object: AQjmsSession.getDBConnection()
BR,
Kuba

Similar Messages

  • Using the JMS API in Java EE Applications

    Hello to all,
    this is some sort of theoretical question.
    I been reading the JMS documentation for a while.
    1.I could not understand what this statement means :
    >
    This section describes the ways in which using the JMS API in enterprise bean applications or web applications differs from using it in application clients.
    2. What is the difference to use the JMS in java EE web orEJB container and application client ?
    Thanks.

    peterwkc wrote:
    Hello to all,
    this is some sort of theoretical question.
    I been reading the JMS documentation for a while.
    1.I could not understand what this statement means :
    >
    This section describes the ways in which using the JMS API in enterprise bean applications or web applications differs from using it in application clients.
    What a developer is allowed to do is different depending on whether they are writing code to run in a container or not. The container already provides lots of services so some code you would write for outside a container is not needed when you write for a container. There are APIs that you are not allowed for in container code if you want to adhere to the spec.
    >
    2. What is the difference to use the JMS in java EE web orEJB container and application client ?
    Thanks.Read more of that document to find out the differences. Application components in Web/EJBs must not create more than one active session per connection while application clients are allowed to do so.

  • Error with the Receiver JMS Adapter (Connection On-Demand feature)

    Hi,
    In high volume we are experiencing errors with the Receiver JMS Adapter and the connection On-demand feature:
    Adapter Framework caught exception: while trying to invoke the method com.sap.aii.adapter.jms.api.connector.DisconnectorListener.notifyEvent(java.lang.String) of an object loaded from local variable 'listener'
    Delivering the message to the application using connection JMS_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: while trying to invoke the method com.sap.aii.adapter.jms.api.connector.DisconnectorListener.notifyEvent(java.lang.String) of an object loaded from local variable 'listener'.
    The message status was set to WAIT.
    Looks like the message is successfuly reprocess after the wait period but the ALEAUD/Akcnowledgment are not successful in the sender ECC system. (SAP -> PI - > JMS)
    Any idea?
    PI 7.1 EHP1
    Thanks,
    Martin
    /people/sunil.ojha5/blog/2010/08/31/review-of-sap-pi-jms-adapter-on-demand-connection-feature
    Edited by: Martin Lavoie Rousseau on Jun 3, 2011 3:21 PM

    Please ensure to have specified an User and password to connect to JMS server (don't leave the fields empty).

  • WebLogic JMS client frozen during JMS connection stopping (race condition)

    Hello,
    Our application is using the WebLogic 10.3.1 JMS client generated with wlfullclient5.jar.
    We have sometimes a race condition when the WebLogic server is stopped.
    In about 10% of the cases where the server is stopped, the client application is frozen in the "stop" call (see stack trace #1 below).
    Our understanding is that each JMS API call by the application is translated by a request-response message on the TCP connection to the JMS server. The JMS library sends the request and then wait for the response. From our observations, it looks like there is no local timeout in the JMS library. This means that if the WebLogic server is being stopped just after receiving the "stop" request, it will never send the "stop" response, which means that the application will be stuck forever.
    The same problem also occurs when using JMS bridges between 2 JMS servers (see stack trace #2 below).
    How can we activate a local timeout for all JNDI/JMS calls ?
    Regards,
    metatech
    "AppThread" prio=3 tid=0x0000000100117800 nid=0x2 in Object.wait() [0xffffffff7befe000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.triggerPeerGoneAndWait(DispatcherWrapperState.java:607)
    - locked <0xffffffff7509aee8> (a weblogic.messaging.dispatcher.DispatcherWrapperState)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:349)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:386)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:252)
    at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
    at weblogic.jms.client.JMSConnection.stop(JMSConnection.java:758)
    - locked <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
    at weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
    at AppSession.closeJMSSession(ConnectorSession.java:499)
    "[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.jms.client.JMSXASession@1d363e4 WAITING
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    weblogic.jms.client.JMSSession.waitForState(JMSSession.java:4778)
    weblogic.jms.client.JMSSession.stop(JMSSession.java:1310)
    weblogic.jms.client.JMSConnection.stop(JMSConnection.java:773)
    weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
    weblogic.jms.adapter.JMSBaseConnection.closeInternal(JMSBaseConnection.java:570)
    weblogic.jms.adapter.JMSBaseConnection.access$000(JMSBaseConnection.java:85)
    weblogic.jms.adapter.JMSBaseConnection$2.run(JMSBaseConnection.java:552)

    Hi Tom,
    Thanks for looking at the issue.
    I tried to post the full thread dump as an attachment, but it is not allowed by the forum, so you find it hereunder.
    Regards,
    metatech
    =================
    2010-05-28 12:33:19
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode):
    "Attach Listener" daemon prio=3 tid=0x0000000100c5b800 nid=0x24 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "ExecuteThread: '0' for queue: 'JmsAsyncQueue'" daemon prio=3 tid=0x0000000100759800 nid=0x23 in Object.wait() [0xffffffff643ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f4ed828> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "Timer-0" daemon prio=3 tid=0x000000010078c800 nid=0x21 in Object.wait() [0xffffffff647ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         - waiting on <0xffffffff6f4ee2c0> (a java.util.TaskQueue)
         at java.lang.Object.wait(Object.java:485)
         at java.util.TimerThread.mainLoop(Timer.java:483)
         - locked <0xffffffff6f4ee2c0> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:462)
    "weblogic.timers.TimerThread" daemon prio=3 tid=0x00000001008e0000 nid=0x20 in Object.wait() [0xffffffff649ff000]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:267)
         - locked <0xffffffff6f4e75d0> (a weblogic.timers.internal.TimerThread)
    "ExecuteThread: '3' for queue: 'default'" daemon prio=3 tid=0x0000000100709000 nid=0x1e waiting for monitor entry [0xffffffff65afe000]
    java.lang.Thread.State: BLOCKED (on object monitor)
         at weblogic.jms.client.JMSConnection.stateChangeListener(JMSConnection.java:1413)
         - waiting to lock <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.run(DispatcherWrapperState.java:682)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.timerExpired(DispatcherWrapperState.java:617)
         at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
         at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
    "ExecuteThread: '2' for queue: 'default'" daemon prio=3 tid=0x000000010055c800 nid=0x1d in Object.wait() [0xffffffff65cff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f427a80> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "ExecuteThread: '1' for queue: 'default'" daemon prio=3 tid=0x000000010055c000 nid=0x1c in Object.wait() [0xffffffff65eff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f427da0> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "ExecuteThread: '0' for queue: 'default'" daemon prio=3 tid=0x00000001006fa800 nid=0x1b in Object.wait() [0xffffffff660ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f4280c0> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "StateHolder" daemon prio=3 tid=0x0000000100584800 nid=0x1a waiting on condition [0xffffffff66aff000]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
         at java.lang.Thread.sleep(Native Method)
         at StateHolder.run(StateHolder.java:80)
         at java.lang.Thread.run(Thread.java:619)
    "Thread-1" daemon prio=3 tid=0x0000000100554000 nid=0x18 waiting on condition [0xffffffff66cff000]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
         at java.lang.Thread.sleep(Native Method)
         at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:104)
    "Low Memory Detector" daemon prio=3 tid=0x00000001003d3800 nid=0x16 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "CompilerThread1" daemon prio=3 tid=0x00000001003cf000 nid=0x15 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "CompilerThread0" daemon prio=3 tid=0x00000001003cd800 nid=0x14 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "Signal Dispatcher" daemon prio=3 tid=0x00000001003cb800 nid=0x13 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "Finalizer" daemon prio=3 tid=0x00000001003a4800 nid=0x12 in Object.wait() [0xffffffff680ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
         - locked <0xffffffff6f4c7670> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=3 tid=0x00000001003a3000 nid=0x11 in Object.wait() [0xffffffff682ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
         - locked <0xffffffff6f401370> (a java.lang.ref.Reference$Lock)
    "Worker" prio=3 tid=0x0000000100117800 nid=0x2 in Object.wait() [0xffffffff7befe000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.triggerPeerGoneAndWait(DispatcherWrapperState.java:607)
         - locked <0xffffffff7509aee8> (a weblogic.messaging.dispatcher.DispatcherWrapperState)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:349)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:386)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:252)
         at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
         at weblogic.jms.client.JMSConnection.stop(JMSConnection.java:758)
         - locked <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
         at weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
         at ConnectorSession.closeJMSSession(ConnectorSession.java:499)
         at ConnectorSession.receiveRequest(ConnectorSession.java:617)
         at ConnectorSession.processRequest(ConnectorSession.java:341)
         at Worker.mainApplication(Worker.java:127)
         at Worker.mainMethod(Worker.java:298)
         at Worker.main(Worker.java:163)
    "VM Thread" prio=3 tid=0x000000010039c800 nid=0x10 runnable
    "GC task thread#0 (ParallelGC)" prio=3 tid=0x000000010011b000 nid=0x3 runnable
    "GC task thread#1 (ParallelGC)" prio=3 tid=0x0000000100121000 nid=0x4 runnable
    "GC task thread#2 (ParallelGC)" prio=3 tid=0x0000000100122800 nid=0x5 runnable
    "GC task thread#3 (ParallelGC)" prio=3 tid=0x0000000100126000 nid=0x6 runnable
    "GC task thread#4 (ParallelGC)" prio=3 tid=0x0000000100127800 nid=0x7 runnable
    "GC task thread#5 (ParallelGC)" prio=3 tid=0x0000000100129000 nid=0x8 runnable
    "GC task thread#6 (ParallelGC)" prio=3 tid=0x000000010012b000 nid=0x9 runnable
    "GC task thread#7 (ParallelGC)" prio=3 tid=0x000000010012c800 nid=0xa runnable
    "GC task thread#8 (ParallelGC)" prio=3 tid=0x000000010012e000 nid=0xb runnable
    "GC task thread#9 (ParallelGC)" prio=3 tid=0x000000010012f800 nid=0xc runnable
    "GC task thread#10 (ParallelGC)" prio=3 tid=0x0000000100131800 nid=0xd runnable
    "GC task thread#11 (ParallelGC)" prio=3 tid=0x0000000100133000 nid=0xe runnable
    "GC task thread#12 (ParallelGC)" prio=3 tid=0x0000000100134800 nid=0xf runnable
    "VM Periodic Task Thread" prio=3 tid=0x00000001003d5800 nid=0x17 waiting on condition
    JNI global references: 818

  • Dequeuing a Map message from AQ using Java/JMS

    I have a queue in Oracle AQ, created from a queue table with queue_payload_type of SYS.AQ$_JMS_MAP_MESSAGE. I can successfully enqueue a Map message using PL/SQL, but when I try to read a message from the queue using the JMS API (with the Oracle AQ JMS provider JARs) in a standalone Java program, the message is not successfully read. However, the RETRY_COUNT in the queue table is incremented each time I try to read from the queue. I do not receive any error messages on the client side.
    If I change the queue_payload_type of the queue table to SYS.AQ$_JMS_TEXT_MESSAGE instead and enqueue a text message using PL/SQL, I can read the text message successfully in the standalone Java program using JMS. The message is removed from the queue and everything works fine.
    Most Oracle AQ/JMS examples I've found on the web involve text messages. Has anyone been able to read a Map message from an Oracle AQ queue using JMS, or is there a known issue with Map messages?
    I'm running Oracle 10g Standard Edition version 10.2.0.1.0 on Windows XP.
    Thanks for your help,
    Marty

    While you are awaiting an answer you might want to consider applying the 10.2.0.4 patch. Your version is several years old and patches are free.

  • Complete working code for Gmail POP3 & SMTP with SSL - Java mail API

    Finally, your code-hunt has come to an end!!!!
    I am presenting you the complete solution (with code) to send and retrieve you mails to & from GMAIL using SMTP and POP3 with SSL & Authenticaion enabled. [Even starters & newbies like me, can easy try, test & understand - But first download & add JAR's of Java Mail API & Java Activation Framework to Netbeans Library Manager]
    Download Java Mail API here
    http://java.sun.com/products/javamail/
    Read Java Mail FAQ's here
    http://java.sun.com/products/javamail/FAQ.html
    Download Java Activation Framework [JAF]
    http://java.sun.com/products/javabeans/jaf/downloads/index.html
    Also, The POP program retrieves the mail sent with SMTP program :) [MOST IMPORTANT & LARGELY IN DEMAND]okey.. first things first... all of your thanks goes to the following and not a s@!te to me :)
    hail Java !!
    hail Java mail API !!
    hail Java forums !!
    hail Java-tips.org !!
    hail Netbeans !!
    Thanks to all coders who helped me by getting the code to work in one piece.
    special thanks to "bshannon" - The dude who runs this forum from 97!!I am just as happy as you will be when you execute the below code!! [my 13 hours of tweaking & code hunting has paid off!!]
    Now here it is...I only present you the complete solution!!
    START OF PROGRAM 1
    SENDING A MAIL FROM GMAIL ACCOUNT USING SMTP [STARTTLS (SSL)] PROTOCOL OF JAVA MAIL APINote on Program 1:
    1. In the code below replace USERNAME & PASSWORD with your respective GMAIL account username and its corresponding password!
    2. Use the code to make your Gmail client [jsp/servlets whatever]
    //Mail.java - smtp sending starttls (ssl) authentication enabled
    //1.Open a new Java class in netbeans (default package of the project) and name it as "Mail.java"
    //2.Copy paste the entire code below and save it.
    //3.Right click on the file name in the left side panel and click "compile" then click "Run"
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.*;
    public class Main
        String  d_email = "[email protected]",
                d_password = "PASSWORD",
                d_host = "smtp.gmail.com",
                d_port  = "465",
                m_to = "[email protected]",
                m_subject = "Testing",
                m_text = "Hey, this is the testing email.";
        public Main()
            Properties props = new Properties();
            props.put("mail.smtp.user", d_email);
            props.put("mail.smtp.host", d_host);
            props.put("mail.smtp.port", d_port);
            props.put("mail.smtp.starttls.enable","true");
            props.put("mail.smtp.auth", "true");
            //props.put("mail.smtp.debug", "true");
            props.put("mail.smtp.socketFactory.port", d_port);
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");
            SecurityManager security = System.getSecurityManager();
            try
                Authenticator auth = new SMTPAuthenticator();
                Session session = Session.getInstance(props, auth);
                //session.setDebug(true);
                MimeMessage msg = new MimeMessage(session);
                msg.setText(m_text);
                msg.setSubject(m_subject);
                msg.setFrom(new InternetAddress(d_email));
                msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to));
                Transport.send(msg);
            catch (Exception mex)
                mex.printStackTrace();
        public static void main(String[] args)
            Main blah = new Main();
        private class SMTPAuthenticator extends javax.mail.Authenticator
            public PasswordAuthentication getPasswordAuthentication()
                return new PasswordAuthentication(d_email, d_password);
    END OF PROGRAM 1-----
    START OF PROGRAM 2
    RETRIVE ALL THE MAILS FROM GMAIL INBOX USING Post Office Protocol POP3 [SSL] PROTOCOL OF JAVA MAIL APINote:
    1.Log into your gmail account via webmail [http://mail.google.com/]
    2.Click on "settings" and select "Mail Forwarding & POP3/IMAP"
    3.Select "enable POP for all mail" and "save changes"
    4.In the code below replace USERNAME & PASSWORD with your respective GMAIL account username and its corresponding password!
    PROGRAM 2 - PART 1 - Main.java
    //1.Open a new Java class file in the default package
    //2.Copy paste the below code and rename it to Mail.java
    //3.Compile and execute this code.
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
            try {
                GmailUtilities gmail = new GmailUtilities();
                gmail.setUserPass("[email protected]", "PASSWORD");
                gmail.connect();
                gmail.openFolder("INBOX");
                int totalMessages = gmail.getMessageCount();
                int newMessages = gmail.getNewMessageCount();
                System.out.println("Total messages = " + totalMessages);
                System.out.println("New messages = " + newMessages);
                System.out.println("-------------------------------");
    //Uncomment the below line to print the body of the message. Remember it will eat-up your bandwidth if you have 100's of messages.            //gmail.printAllMessageEnvelopes();
                gmail.printAllMessages();
            } catch(Exception e) {
                e.printStackTrace();
                System.exit(-1);
    END OF PART 1
    PROGRAM 2 - PART 2 - GmailUtilities.java
    //1.Open a new Java class in the project (default package)
    //2.Copy paste the below code
    //3.Compile - Don't execute this[Run]
    import com.sun.mail.pop3.POP3SSLStore;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Address;
    import javax.mail.FetchProfile;
    import javax.mail.Flags;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Part;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.URLName;
    import javax.mail.internet.ContentType;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.ParseException;
    public class GmailUtilities {
        private Session session = null;
        private Store store = null;
        private String username, password;
        private Folder folder;
        public GmailUtilities() {
        public void setUserPass(String username, String password) {
            this.username = username;
            this.password = password;
        public void connect() throws Exception {
            String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
            Properties pop3Props = new Properties();
            pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
            pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
            pop3Props.setProperty("mail.pop3.port",  "995");
            pop3Props.setProperty("mail.pop3.socketFactory.port", "995");
            URLName url = new URLName("pop3", "pop.gmail.com", 995, "",
                    username, password);
            session = Session.getInstance(pop3Props, null);
            store = new POP3SSLStore(session, url);
            store.connect();
        public void openFolder(String folderName) throws Exception {
            // Open the Folder
            folder = store.getDefaultFolder();
            folder = folder.getFolder(folderName);
            if (folder == null) {
                throw new Exception("Invalid folder");
            // try to open read/write and if that fails try read-only
            try {
                folder.open(Folder.READ_WRITE);
            } catch (MessagingException ex) {
                folder.open(Folder.READ_ONLY);
        public void closeFolder() throws Exception {
            folder.close(false);
        public int getMessageCount() throws Exception {
            return folder.getMessageCount();
        public int getNewMessageCount() throws Exception {
            return folder.getNewMessageCount();
        public void disconnect() throws Exception {
            store.close();
        public void printMessage(int messageNo) throws Exception {
            System.out.println("Getting message number: " + messageNo);
            Message m = null;
            try {
                m = folder.getMessage(messageNo);
                dumpPart(m);
            } catch (IndexOutOfBoundsException iex) {
                System.out.println("Message number out of range");
        public void printAllMessageEnvelopes() throws Exception {
            // Attributes & Flags for all messages ..
            Message[] msgs = folder.getMessages();
            // Use a suitable FetchProfile
            FetchProfile fp = new FetchProfile();
            fp.add(FetchProfile.Item.ENVELOPE);       
            folder.fetch(msgs, fp);
            for (int i = 0; i < msgs.length; i++) {
                System.out.println("--------------------------");
                System.out.println("MESSAGE #" + (i + 1) + ":");
                dumpEnvelope(msgs);
    public void printAllMessages() throws Exception {
    // Attributes & Flags for all messages ..
    Message[] msgs = folder.getMessages();
    // Use a suitable FetchProfile
    FetchProfile fp = new FetchProfile();
    fp.add(FetchProfile.Item.ENVELOPE);
    folder.fetch(msgs, fp);
    for (int i = 0; i < msgs.length; i++) {
    System.out.println("--------------------------");
    System.out.println("MESSAGE #" + (i + 1) + ":");
    dumpPart(msgs[i]);
    public static void dumpPart(Part p) throws Exception {
    if (p instanceof Message)
    dumpEnvelope((Message)p);
    String ct = p.getContentType();
    try {
    pr("CONTENT-TYPE: " + (new ContentType(ct)).toString());
    } catch (ParseException pex) {
    pr("BAD CONTENT-TYPE: " + ct);
    * Using isMimeType to determine the content type avoids
    * fetching the actual content data until we need it.
    if (p.isMimeType("text/plain")) {
    pr("This is plain text");
    pr("---------------------------");
    System.out.println((String)p.getContent());
    } else {
    // just a separator
    pr("---------------------------");
    public static void dumpEnvelope(Message m) throws Exception {       
    pr(" ");
    Address[] a;
    // FROM
    if ((a = m.getFrom()) != null) {
    for (int j = 0; j < a.length; j++)
    pr("FROM: " + a[j].toString());
    // TO
    if ((a = m.getRecipients(Message.RecipientType.TO)) != null) {
    for (int j = 0; j < a.length; j++) {
    pr("TO: " + a[j].toString());
    // SUBJECT
    pr("SUBJECT: " + m.getSubject());
    // DATE
    Date d = m.getSentDate();
    pr("SendDate: " +
    (d != null ? d.toString() : "UNKNOWN"));
    static String indentStr = " ";
    static int level = 0;
    * Print a, possibly indented, string.
    public static void pr(String s) {
    System.out.print(indentStr.substring(0, level * 2));
    System.out.println(s);
    }END OF PART 2
    END OF PROGRAM 2
    P.S: CHECKING !!
    STEP 1.
    First compile and execute the PROGRAM 1 with your USERNAME & PASSWORD. This will send a mail to your own account.
    STEP 2.
    Now compile both PART 1 & PART 2 of PROGRAM 2. Then, execute PART 1 - Main.java. This will retrive the mail sent in step 1. njoy! :)
    In future, I hope this is added to the demo programs of the Java Mail API download package.
    This is for 3 main reasons...
    1. To prevent a lot of silly questions being posted on this forum [like the ones I did :(].
    2. To give the first time Java Mail user with a real time working example without code modification [code has to use command line args like the demo programs - for instant results].
    3. Also, this is what google has to say..
    "The Gmail Team is committed to making sure you always can access your mail. That's why we're offering POP access and auto-forwarding. Both features are free for all Gmail users and we have no plans to charge for them in the future."
    http://mail.google.com/support/bin/answer.py?answer=13295
    I guess bshannon & Java Mail team is hearing this....
    Again, Hurray and thanks for helping me make it!! cheers & no more frowned faces!!
    (: (: (: (: (: GO JCODERS GO!! :) :) :) :) :)
    codeace
    -----                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

    Thanks for the reply,
    I did checked by enabling session debuging and also checked pop settings it's enabled for all
    mails, I tried deleting some very old messages and now the message count is changed to 310.
    This may be the problem with gmail.
    Bellow is the output i got,
    DEBUG: setDebug: JavaMail version 1.4ea
    DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]
    DEBUG POP3: connecting to host "pop.gmail.com", port 995, isSSL false
    S: +OK Gpop ready for requests from 121.243.255.240 n22pf5432603pof.2
    C: USER [email protected]
    S: +OK send PASS
    C: PASS my_password
    S: +OK Welcome.
    C: STAT
    S: +OK 310 26900234
    Custom output: messageCount : 310
    C: QUIT
    S: +OK Farewell.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Class Not Found: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter in Outbound JMS Converter

    OEP 12.1.3
    Following the instructions in 4 Adapters (12c Release 1 (12.1.3)) I have created a custom message converter bean for my Outbound JMS Adapter (I had to add the JAR file com.bea.wlevs.adapters.jms_12.1.3.0_0.jar from OEP_HOME\oep\modules to my project to make the code compile). However, upon deployment, I ran into a class not found exception:
    <Sep 15, 2014 7:17:19 PM CEST> <Error> <org.springframework.osgi.extender.internal.activator.ContextLoaderListener> <BEA-000000> <Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=CreditCardTheftDetection.AirportCreditCardTransactionProcessing, config=osgibundle:/META-INF/spring/*.xml))
    java.lang.NoClassDefFoundError: saibot.airport.security.prevention.jms.SuspectedCreditCardEventConverter not found from bundle [CreditCardTheftDetection.AirportCreditCardTransactionProcessing (CreditCardTheftDetection.AirportCreditCardTransactionProcessing)]
        at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:112)
        at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
    Caused By: java.lang.NoClassDefFoundError: com/bea/wlevs/adapters/jms/api/OutboundMessageConverter
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
    Caused By: java.lang.ClassNotFoundException: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    I have tried adding the JAR file (com.bea.wlevs.adapters.jms_12.1.3.0_0.jar) to my deployment JAR. That did not make any difference.
    Does anyone know why this class OutboundMessageConverter is not found - and more importantly: what I can do to make it available in the run time?
    thanks.
    Lucas

    To make a package available to your application at runtime for OEP, you will need to add it to the application's MANIFEST.MF file to the Import Package section (since the OEP server is OSGi-based). There's no need to supply a version number, you can just enter the package name (e.g.)
    com.bea.wlevs.adapters.jms.api,

  • How to do SAVE AS DRAFT using java mail api

    Hello,
    I want to know how to do SAVE AS DRAFT using Java mail Api.
    thanks

    Hello,
    I want to know how to do SAVE AS DRAFT using Java
    mail Api.
    thanksI don't think you can. That sounds like a feature of a mail client app itself. The Java mail API is for when you're ready to actually send the thing. Saving drafts is storing them somewhere like you would any other data; nothing to do with the mail API.

  • Best docs for using JMS API on AQ

    Hi,
    I have found some oracle docs but all are using the the oracle specific AQ classes to manipulate queue/topic in AQ, ie. oracle.AQ. I was not able to find any docs that uses the generic JMS API, ie. javax.jms.. Hope someone can direct me to some URLs with examples using the generic JMS API.
    thanks.

    Chun-Hong,
    Please take a look here at the 10.1 documentation for Streams Advanced Queuing Java API Reference:
    http://download-west.oracle.com/docs/cd/B14117_01/server.101/b12023/toc.htm
    Good luck!

  • JMS api jar??? and implementations

    Is there a simple JMS api jar??? Kind of like the SAX/DOM in j2sdk1.4, where you can change the implementation. I am very confused on how to get started with a client that is not J2EE. Say I have a swing client. How do I do some JMS??? I would assume, I would use the client implementation provided by the JMS vendor, but I am looking at all the open source JMS vendors at
    http://java-source.net/open-source/jms
    When I look at the api's there is no ConnectionFactory like in the Java tutorial for JMS. ie. I can't find the apis. I feel like this is a really dumb question, but it can't be that hard.

    yes, I tried openJMS also. They had this site
    http://openjms.sourceforge.net/usersguide/jars.html
    and guess what, when you click on the jms jar, it leads you to a page with absolutely no jars.
    I also tried uberMQ, and something else. Any JMS setup would be good at this point. I did find a j2ee spec jar from geronimo. Why in the world don't they have one jar that everyone uses instead of everyone typing up their spec jar. This seems like bad way to do it when you want all the companies implementing the same api....I mean, what if I grab a non-spec compliant jms api jar and don't know it.
    Anyways, still just trying to get setup with as minimal a footprint as possible.
    thanks,
    dean

  • JMS API and resume download

    Hi!
    Does the JMS API or the Sun Java System Message queue support "resume download" functionality in case there is a probleb in the connection of the client application. From what I have read, the Enterprise Edition of the Sun Java System Message Queue supports this. The standard version does not support this. Is this right?
    Thanks in advance! :)

    Reading messages from a queue is transactional, so if your code commits the transaction then the message is consumed. If your code fails to commit the transaction the message remains on the queue and may be re-read.
    There's nothing in the JMS API which allows you to automatically re-establish a lost connection however - if required you need to write the code to do this yourself.

  • Core java netwokrking API's or J2EE?

    hello all i want to develop a project planner application in a client/server environment, and i started leaning some of the core java features for my project.My problem is that to achieve the client/server aspect for my project ,
    1. Is it sufficient to use just the core java networking api's or should i use j2EE?? I actually browsed through and found out that it is a better option to use J2EE when u need high transaction processing and scability features among others.. But i feel these two features are not required for my project,, so can i use Java SE itself ??
    2. If i use java SE or core java Api's should networking be achieved only throught socket's or can i use JSP's n servlets..
    3. i do not plan to use a separate database server i feel just one server and upto 5 clients are sufficient for a project team scenario needed for my application.
    plz help in getting my doubts cleared..
    thanks all in advance..

    There is no doubt, only do.
    JEE isn't client/server, so if you want/need to go with a traditional client/server solution it's not the way to go (of course with all this AJAX and WS stuff, it's quite possible to have something that's an amalgamation between traditional client/server and multi-tier thinclient solutions).

  • Java mail api - sending mails to gmail account

    Hello
    I am using java mail api to send mails.when i send mails to gmail from ids which are not in gmail friends list, most of the mails are going to spam.Ofcourse, some of them go to inbox.I tried in lot of ways to analyse the problem.But nothing could help. Can anyone plzz tell me how to avoid mails going to spam in gmail, using java mail api?
    Thank you in advance,
    Regards,
    Aradhana
    Message was edited by:
    Aradhana

    am using the below code.
    Properties props = System.getProperties();
    //          Setup mail server
              props.put("mail.smtp.host", smtpHost);
              props.put("mail.smtp.port","25");
              props.put("mail.smtp.auth", isAuth);
         Authenticator auth = new UserAuthenticator();
    //          Get session
              Session s = Session.getDefaultInstance(props,auth);
    //          Define message
              Message m = new MimeMessage(s);
    //          setting message attributes
              try {
                   m.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
                   InternetAddress f_addr=new InternetAddress(from);
                   f_addr.setPersonal(personalName);
                   m.setFrom(f_addr);               
                   m.setSubject(subject);
                   m.setSentDate(new Date());
                   m.setContent(msg,"text/plain");
                   m.saveChanges();
    //               send message
                   Transport.send(m);
    Message was edited by:
    Aradhana

  • Performance issue with Business Objects Java JRC API in CRXI R2 version

    A report is developed using java JRC API in CR XI release 2. When I generate the report in the designer, it took less than 5 seconds to display the results in crystal report viewer inside the designer. But in the QA environment, when I generate the same report from the application, it takes almost 1 to 1.5 minutes to display the same results in PDF. I also noticed that if the dataset contains bigger volume of data, then the reports are taking even longer almost 15 to 20 minutes.
    While generating the report from the application, I noticed that most of time is taken during the execution of the com.crystaldecisions.report.web.viewer.ReportExportControl Object method as shown in following line of code
    exportControl.processHttpRequest(request, response, context, null)
    We thought the delay in exporting the report to PDF might be the layout of the report and data conversion to PDF for such a bigger volume of data.
    Then we investigated the issue and experimented quickly to generate the same report with same result set data from the application using XML, XSL and converted the output XSL-FO to PDF using Apache FOP (Formatting Objects Processor) implementation. The time taken to export the report to PDF is less than 6 seconds. By doing this experiment, it is proved that the issue is not with conversion of data to PDF but it is the performance problem with Business Objects Java JRC API in CR XI R2.
    In this regard, I searched for the above issue in the SAP community Network Forums -> Crystal Reports and Xcelsius -> Java Development -> Crystal Reports. But I did not find any answers or solutions for this kind of issue in the forums.
    Any suggestion, hint in this matter is very much appreciated.

    Ted, The setReportAppServer problem is resolved. Now I could able to generate the report with hardcoded values in the SQLs in just 6 seconds where as the same report was generated in CRXI R2 in 1 minute 15 seconds as mentioned in the earlier message.
    But, our exisiting application passes the parameter values to the SQLs embedded in the report. For some reason the parameters are not being passed to the report and the report displays only the labels without data.
    As per the crj 12 samples codes, the code is written as shown below.
    1. Created ReportClient Document
    2. SetReportAppServer
    3. Open the report
    4. Getting DatabaseController and switching the database connection at runtime
    5. Then setting the parameters as detailed below
    ParameteFields parameterFieldController = reportClientDoc.getDataDefController().getParameterFieldController();
    parameterFieldController.setCurrentValue("", "paramname",paramvalue);
    parameterFieldController.setCurrentValue("", "paramname",paramavalue);
    byteArrayInputStream = (ByteArrayInputStream)reportClientDoc.getPrintOutputController().export(ReportExportFormat.PDF); 
    6. Streaming the report to the browser
    Why the parematers are not being passed to the report?  Do I need to follow the order of setting these parameters?  Did I miss any line of code for setting Params using  crj 12?
    Any help in this regard would be greatly appreciated.

  • How can i access gmail's smtp server using java mail api

    i m using java mail api to access gmails pop and smtp service to receive and send mail from ur gmail account. I m able to access gmails pop server using the ssl and port 995 , but i can not use its smtp server to which i m connecting using ssl on 465 port. It requires authentication code.
    if anybody can help me in this regard i m thnkful to him/her.
    thnks in advance.
    jogin desai

    Here's an example of using SSL + Authentication
    http://onesearch.sun.com/search/onesearch/index.jsp?qt=ssl+authentication&subCat=siteforumid%3Ajava43&site=dev&dftab=siteforumid%3Ajava43&chooseCat=javaall&col=developer-forums

Maybe you are looking for

  • Can I use intel wireless display on my iPhone 5?

    I would like to wirelessly stream movies and whatever I'm doing on my phone to my HDTV. I would like to use the NetGear Push2TV adapter. It needs a widi compatible device in order to stream wirelessly. So does the iPhone have widi?

  • Not to update Goods receipt on process order in LIMS system

    Dear all, I am working on SAP-LIMS interface project. Please help me out with the below requriement: Release of process order (COR1) in SAP creates lot creation in LIMS (creates an inspection lot in QIWL table which is read by LIMS system to download

  • TOC Won't Display in WinHelp

    I am updating a WinHelp project that was previously developed in X3 but which I am now trying to update and compile in RoboHelp 7 for Word. The TOC won't display (i.e., the TOC navigation panel at the left doesn't display) when the help is launched.

  • I want to know the price of led of iphone 4

    i want to know the price of led of iphone 4

  • Vba-m process does not end when program is exited

    If I run a game in VBA-M, and while running the game, I exit the program, the VBA-M process continues to run in the background. How do I fix this?