Paul Hyde's Java Thread Programming

I have Paul Hyde's Java Thread Programming and I am wondering if it is a comprehensive book for learning the nuts n bolts of threads. I know how to use threads however I want to learn the inner details. Doug Lea's book is perhaps a better option but Paul Hyde's book seems more readiable.
Any comments are appreciated.
cheers

Sounded interesting, found this link
http://www.javaspecialists.co.za/archive/Issue056.html

Similar Messages

  • Question about java threads programming

    Hi
    I have to develop a program where I need to access data from database, but I need to it using multithreading, currently I go sequentially to each database to access data which is slow
    I have a Vector called systemnames, this one has list of all the systems I need to access.
    Here is my current code, some thing like this
    Vector masterVector = new Vector();
    GetData data = new GetData();
    For(int i =0; i < systemnames.size(); i++)
    masterVector.add(data.getData((String)systemnames.get(i));
    public class GetData
    private Vector getData(String ipaddress)
    //process SQL here
    return data;
    how do i convert this to multithread application, so there will be one thread running for each system in vector, this is speed up the process of extracting data and displaying it
    has any one done this kind of program, what are the precautions i need to take care of
    Ashish

    http://www.google.com/search?q=java+threads+tutorial&sourceid=opera&num=0&ie=utf-8&oe=utf-8
    http://java.sun.com/docs/books/tutorial/essential/threads/
    http://www.javaworld.com/javaworld/jw-04-1996/jw-04-threads.html
    http://www.cs.clemson.edu/~cs428/resources/java/tutorial/JTThreads.html
    http://www-106.ibm.com/developerworks/edu/j-dw-javathread-i.html
    When you post code, please use [code] and [/code] tags as described in Formatting Help on the message entry page. It makes it much easier to read and prevents accidental markup from array indices like [i].

  • Need help with java thread program

    Hi
    I have an applet which does some painting etc, i need to write a thread which runs in background, and if there is no user activity for 30 min will refresh the screen.
    I have one good thing that all user options go from one program so i know when user does some thing.
    How do i write this thread program?
    1. I need this program to start counter as soon as some activity is done by user
    2. When user does some thing stop this thread
    3. when user completes his action restart the thread with 30 min timer.
    4. when there is no activity for 30 min refresh the screen
    Any help will be really good
    Ashish

    Not sure what the problem is. Your pseudo code looks good to me.
    The only suggestion I would make is that your use a Timer so you don't have to worry about creating your own Thread. You schedule a Timer to fire in 30 minutes. Everytime you have activiity you cancel the timer and reschedule it.

  • Java Thread Programming

    I am trying to do a program for a class where I have to have 3 trains that attempt to enter 1 tunnel. inTunnel is how long they spend in the tunnel (in seconds) and outTunnel is how long they stay outside before trying to enter again (I have these 2 variables hard coded, but I will later have to read them from a file). Right now, train1 enters and exits the tunnel, but does not allow any other trains to enter. Any help would be appreciated!
    Here is the tunnel class--
    public class Tunnel {
        public Tunnel() {
            empty = true;
        synchronized public void enter(Tunnel tunnel) {
            empty = false;
        synchronized public void leave(Tunnel tunnel) {
            empty = true;
        public boolean isEmpty(Tunnel tunnel) {
            return empty == true;
        private boolean empty;       // Whether or not the tunnel is empty
    }Here is the train class that is runnable---
    public class Train implements Runnable {
        public Train(String name, int outTunnel, int inTunnel, Tunnel tunnel) {
            this.name = name;
            this.outTunnel = outTunnel;
            this.inTunnel = inTunnel;
            this.tunnel = tunnel;
        synchronized public void run() {
            while(true) {
                try {
                    Thread.sleep(outTunnel);
                } catch(InterruptedException e) {
                    System.out.println(e);
                while(!tunnel.isEmpty(tunnel)) {                // While the tunnel is full
                    try {
                        wait();                                 // Wait for the notify all
                    } catch(InterruptedException e) {
                        System.out.println(e);
                // Current train enters the tunnel
                System.out.println(name + " is entering the tunnel for " + inTunnel/1000 + " seconds...\n");
                tunnel.enter(tunnel);
                try {
                    Thread.sleep(inTunnel);
                } catch(InterruptedException e) {
                    System.out.println(e);
                // Current train leaves the tunnel
                System.out.println(name + " is leaving the tunnel and will try to enter again in " + outTunnel/1000 + " seconds...\n");
                tunnel.leave(tunnel);
                notifyAll();
        private String name;
        private int outTunnel;                      // How long the train should be in the tunnel
        private int inTunnel;                       // How long the train should be out of the tunnel before re-entering
        private Tunnel tunnel = new Tunnel();       // Tunnel instance to use enter() and leave()
    }Here is the TrainTunnel class that contains main()---
    import java.io.IOException;
    public class TrainTunnel {
        public static void main(String[] args) {
            System.out.println("Press Enter when finished...");
            Tunnel tunnel = new Tunnel();       // Tunnel instance to use enter() and leave()
            int outTunnel = 0;      // Time train is outside of tunnel in seconds before trying to enter again
            int inTunnel = 0;       // Time train is in tunnel in seconds
            outTunnel = 6;
            inTunnel = 10;
            Train train1 = new Train("Train1", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            outTunnel = 14;
            inTunnel = 7;
            Train train2 = new Train("Train2", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            outTunnel = 10;
            inTunnel = 5;
            Train train3 = new Train("Train3", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            // Create threads from each train and make them daemon threads, then start them
            Thread train1Thread = new Thread(train1);
            Thread train2Thread = new Thread(train2);
            Thread train3Thread = new Thread(train3);
            train1Thread.setDaemon(true);
            train2Thread.setDaemon(true);
            train3Thread.setDaemon(true);
            train1Thread.start();
            train2Thread.start();
            train3Thread.start();
            try {
                System.in.read();           // Wait for user to press Enter
                System.out.println("Enter pressed...");
            } catch(IOException e) {
                System.out.println(e);
            System.out.println("Ending main() from user command...");
            return;
    }

    I have modified my code (with some help from another forum. I am getting exceptions now, can anyone help?
    Here is the tunnel class--
    public class Tunnel {
        public Tunnel() {
            empty = true;
        synchronized public void enter(Tunnel tunnel) {
            empty = false;
        synchronized public void leave(Tunnel tunnel) {
            empty = true;
        public boolean isEmpty(Tunnel tunnel) {
            return empty == true;
        private boolean empty;       // Whether or not the tunnel is empty
    }Here is the train class that is runnable---
    public class Train implements Runnable {
        public Train(String name, int outTunnel, int inTunnel, Tunnel tunnel) {
            this.name = name;
            this.outTunnel = outTunnel;
            this.inTunnel = inTunnel;
            this.tunnel = tunnel;
        synchronized public void run() {
            while(true) {
                try {
                    Thread.sleep(outTunnel);
                } catch(InterruptedException e) {
                    System.out.println(e);
                while(!tunnel.isEmpty(tunnel)) {                // While the tunnel is full
                    try {
                        tunnel.wait();                                 // Wait for the notify all
                    } catch(InterruptedException e) {
                        System.out.println(e);
                // Current train enters the tunnel
                System.out.println(name + " is entering the tunnel for " + inTunnel/1000 + " seconds...\n");
                tunnel.enter(tunnel);
                try {
                    Thread.sleep(inTunnel);
                } catch(InterruptedException e) {
                    System.out.println(e);
                // Current train leaves the tunnel
                System.out.println(name + " is leaving the tunnel and will try to enter again in " + outTunnel/1000 + " seconds...\n");
                tunnel.leave(tunnel);
                tunnel.notify();
        private String name;
        private int outTunnel;                      // How long the train should be in the tunnel
        private int inTunnel;                       // How long the train should be out of the tunnel before re-entering
        private Tunnel tunnel = new Tunnel();       // Tunnel instance to use enter() and leave()
    }Here is the TrainTunnel class that contains
    main()---
    import java.io.IOException;
    public class TrainTunnel {
        public static void main(String[] args) {
            System.out.println("Press Enter when finished...");
            Tunnel tunnel = new Tunnel();       // Tunnel instance to use enter() and leave()
            int outTunnel = 0;      // Time train is outside of tunnel in seconds before trying to enter again
            int inTunnel = 0;       // Time train is in tunnel in seconds
            // Read values into outTunnel and inTunnel
            outTunnel = 2;
            inTunnel = 10;
            Train train1 = new Train("Train1", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            // Read new values into outTunnel and inTunnel
            outTunnel = 1;
            inTunnel = 3;
            Train train2 = new Train("Train2", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            // Read nuw values into outTunnel and inTunnel
            outTunnel = 10;
            inTunnel = 5;
            Train train3 = new Train("Train3", (outTunnel * 1000), (inTunnel * 1000), tunnel);
            // Create threads from each train and make them daemon threads, then start them
            Thread train1Thread = new Thread(train1);
            Thread train2Thread = new Thread(train2);
            Thread train3Thread = new Thread(train3);
            train1Thread.setDaemon(true);
            train2Thread.setDaemon(true);
            train3Thread.setDaemon(true);
            train1Thread.start();
            train2Thread.start();
            train3Thread.start();
            try {
                System.in.read();           // Wait for user to press Enter
                System.out.println("Enter pressed...");
            } catch(IOException e) {
                System.out.println(e);
            System.out.println("Ending main() from user command...");
            return;
    }

  • Why this Java Thread program doesn't work as expected?

    Hello all:
    I have a java code as follows:
    My question is why tryThreadB which is set as deamon thread still run
    after the main program return?
    the output of this program looks like:
    HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn Ending main()
    HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn
    However, I think the correct output should be:
    HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn HopalongMarilyn Ending main()
    Hopalong Hopalong Hopalong Hopalong Hopalong Hopalong Hopalong Hopalong
    ====================================
    <pre>
    import java.io.*;
    public class TryThread extends Thread {
    private String firstName;
    public TryThread(String firstName) {
    this.firstName = firstName;
    public static void main(String[] args) {
    TryThread tryThreadA = new TryThread("Hopalong");
    TryThread tryThreadB = new TryThread("Marilyn ");
    // user thread
    tryThreadA.setDaemon(false);
    // daemon thread
    tryThreadB.setDaemon(true);
    tryThreadA.start();
    tryThreadB.start();
    try {
    sleep(5000);
    catch (InterruptedException ex) {
    System.out.println("Ending main()");
    return;
    public void run() {
    try {
    while(true) {
    System.out.print(firstName);
    sleep(1000);
    catch (InterruptedException ex) {
    System.out.println(ex);
    </pre>
    ====================================
    thank you very much

    Hi,
    From the Thread documentation:
    When a Java Virtual Machine starts up, there is usually a single non-daemon thread (which typically calls
    the method named main of some designated class). The Java Virtual Machine continues to execute
    threads until either of the following occurs:
        * The exit method of class Runtime has been called and the security manager has permitted the exit
    operation to take place.
        * All threads that are not daemon threads have died, either by returning from the call to the run method
    or by throwing an exception that propagates beyond the run method.A daemon thread will not stop after the main method returns. It will stop when there are only daemon threads executing.
    So, in your case, thread B will continue to execute as long as thread A (or any other non-daemon thread) is alive.
    /Kaj

  • Java Threads Problem

    Hi, I am trying to write a simple java threads program where in one thread reads a file and another thread writes the data into a second file....
    Here is my code, although i think i am correct, my program still runs in a sequential fashion help help help!!!
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    class MyThread extends Thread{
    private int a;
    private int c;
    FileInputStream in;
    FileOutputStream out;
    public MyThread(int a){
    this.a = a;
    public void run(){
    if(this.a==5)
         try {
         in = new FileInputStream("Britney.txt");
    } catch (FileNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
    try {
         while((c=in.read())!=-1)
              a = (char) c;
              System.out.println(a);
    catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
    if(this.a==10)
         try {
              out = new FileOutputStream("romi.txt");
         } catch (FileNotFoundException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
         for(int i = 0;i<50;i++)
              try {
                   System.out.println(c);
                   out.write(c);
              } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    class MainMyThread{
    public static void main(String args[]){
    MyThread thr1, thr2;
    thr1 = new MyThread(5);
    thr2 = new MyThread(10);
    thr1.start();
    thr2.start();
    }

    Encephalopathic wrote:
    malcolmmc wrote:
    ... Chances of getting any kind of reply except "me too" can be pretty remote. ....there's actually a better chance of getting a reply on a general forum like this one, ....Can't you just post in both the narrow and the general forum, but include links one to the other in each thread? Or is that against the forum rules/etiquette? Most people here are ok with a crosspost IF those links are included.
    I would also ask that the OP designate one of those threads as the real discussion thread and just direct folks there from the other threads, so that we have one coherent discussion. If he does that, there's no problem with trying to reach out to as broad an audience as possible.
    I would figure that if the poster were upfront about what they are doing, folks wouldn't mind, but I could be wrong.I think that's generally the case. As long as the discussion is confined to one thread (and pointed there from the crossposts) or at the very least all the participants can see all the discussions, I think most people don't have a problem with it. It's when we waste our time answering when he's already got the answer elsewhere that's annoying.

  • Running a Java Multi Thread Program in database

    I have created a multi threaded program in Java and it runs successfully from the command prompt. I want to create a DBMS Job which will wake up at regular intervals and runs the java program(Java stored procedure). Is this possible in 9.2/10G ?? If Yes, will there be any impact on the DB performance/increase memory etc.,
    The database (9.2...) resides on a RH 2.3 AS box.
    Any ideas...
    Thanks,
    Purush

    Purush,
    Java stored procedures cannot be multi-threaded. Well, they can, but the threads will not run in parallel. You may be able to find some more information in the Oracle documentation, which is available from:
    http://tahiti.oracle.com
    Good Luck,
    Avi.

  • How to write JDBC code in a java thread? for network programming

    Hii guys, i am new to java network programming. I developed small swing application for stock controlling in a shop, so i need to run the database in a server. i try the peer to peer scenario, but the response is too late and the application get stuck. there i wl put my data base java class
    please help me for this, how can i change this java class to networked JDBC
    import com.mysql.jdbc.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    public class ConnectionSet {
    private String severIp = "localhost";
    private String severPort = "3306";
    private String userName = "root";
    private String password = "123";
    private ResultSet rs;
    public void setSeverIp(String Ip) {
    severIp = Ip;
    public void setSeverPort(String Port) {
    severPort = Port;
    public void SetUserName(String Name) {
    userName = Name;
    public void setPassword(String passWord) {
    password = passWord;
    public ResultSet getResult(String url) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    Connection cc = (Connection) DriverManager.getConnection("jdbc:mysql://" + getSeverIp() + ":" + getSeverPort() + "/suriyalanka", getUserName(), getPassword());
    Statement s = cc.createStatement();
    rs = s.executeQuery(url);
    // java.sql.ResultSet rs = (ResultSet) DriverManager.getConnection("jdbc:mysql://"+getSeverIp()+":"+getSeverPort()+"/suriyalanka",getUserName(), getPassword()).createStatement().executeQuery(url);
    return rs;
    public Connection getConnection() throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    Connection cc = (Connection) DriverManager.getConnection("jdbc:mysql://" + getSeverIp() + ":" + getSeverPort() + "/suriyalanka", getUserName(), getPassword());
    return cc;
    public void setResult(String url) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    Connection cc = (Connection) DriverManager.getConnection("jdbc:mysql://" + getSeverIp() + ":" + getSeverPort() + "/suriyalanka", getUserName(), getPassword());
    Statement s = (Statement) cc.createStatement();
    s.executeUpdate(url);
    public String getSeverIp() {
    return severIp;
    public String getSeverPort() {
    return severPort;
    public String getUserName() {
    return userName;
    public String getPassword() {
    return password;
    please help me for this, how can i change this java class to networked JDBC
    Edited by: 798670 on Sep 29, 2010 6:04 AM

    Have you verified that your mysql allows network connections?
    In order to allow network connections you have to comment or remove line "skip-networking" in my.ini(windows) or my.cnf(unix) configuration files of your mysql instance.
    Or if you have the mysql administrator installed
    MySQL Administrator / Startup Variables / Disable networking (uncheck)
    By!

  • Java threads and WinLogon processes taking CPU!

    We are seeing a strange problem. We have a multi-threaded java application
    that is deployed on a Microsoft Windows 2000 server (SP4) with Citrix
    Metaframe XP (Feature release 2). When this application starts, we start to see
    multiple WINLOGON.EXE processes (20 plus) each taking up 1-2% of CPU -
    this raises the CPU usage on the server significantly, impacting performance.
    We have tested with JDK 1.3, 1.4, and 1.5 and see the same issues. If we
    run the java application in a single thread, we dont see the same issue.
    Has any one seen this problem before? Any suggestion on how this can be resolved?
    Thanks in advance!

    Thanks for your replies. This is a Citrix environment where there are 50 plus
    users logged in and there are 50 plus instances of Winlogon.exe always
    running. Most of the time the cpu usage of these processes is 0.
    We tried a multi-threaded program that lists files in a directory every few
    seconds. There are 40 plus servers in the farm that we are deploying this
    application on. We are seeing this problem on only some of the servers.
    If we run a single thread from main(), we dont see the issue. But if we spawn
    10 threads doing the scans periodically, we notice that as soon as all the threads
    start, the WinLogons appear to start to take up CPU. When we stop the java
    program, the WinLogon processes drop in CPU usage.
    Is it possible that Java and WinLogon share some dlls that could be triggering
    the WinLogon processes off?
    We have tried running the single thread and multi-threaded programs around
    same time and the correlation with the winlogons is clearly visible. If we add
    sleep() soon after we start a thread, the winlogons seem to kick in later.

  • Java Threads vs. Native Global Variables

    A brief description of the problem:
    I am trying to integrate a multi-threaded Java app with legacy Fortran code. The Fortran code in question makes extensive use of global variables in the form of Fortran's Common Block data structure.
    If multiple threads were allowed access to a native routine, they would over write each others data which is stored in global variables.
    If only one thread at a time can have access to the native routine for the duration of the native routine, the whole advantage of using threads is completely nullified.
    These native routines cannot be rewritten (3rd party code) and must be used.
    One solution I envisioned was to load a new copy of the native shared object code for each Java object that used the native code. However, it seems System.loadLibrary() can only be used in a static context.
    Is there any known solution to this problem?

    Here is an elaboration on the earlier suggestions. It's a high overhead solution, because you have to start a bunch of JVMs.
    1. You have a java control program, which will start up a pool of "services", make requests to them, and gather the results.
    2. Each service is a small java program with a native method:
    o java communications front-end.
    o native method declaration.
    o native - in your case fortran - method implementation.
    3. Each service is started using "exec". That puts it in a separate process.
    4, Since each service is a java program, you can use java to do communications between the control program and the service.
    o You could use RMI.
    o You could - perhaps - use java Process communications, i.e., have the services write to stdout, and have the control program capture the output.
    o You could use socket communications.

  • Java threads monitoring

    I am using Java threads in my Java program, running on Windows Professional 2000. I am monitoring the threads using Windows Performance Monitor (WPM). However, even running a small Java program which creates only 2 threads, results in many (at least 10) instances of Java threads being reported by the WPM. Problem is, in WPM, there is no way to determine which threads in the WPM are the threads that I programmatically created. Any ideas on how to determine this?
    Thanks.
    Rhodie

    Hi Dmirty ,
    To handle large asynchronous message   in queues you can use  message packaging where multiple message are processed in one package . to make it applicable you have to perform these simple steps
    1. go to SXMB_ADM add one RUNTIME parameter PACKAGING and value 1
    2 GO TO transaction SXMS_BCONF set delay time 0 message count 100 messages and package size 1000 KB
    with these setting your improvement will increase .secondly also put  IN SXMB_ADM monitor category parameter QRFC_RESTART_ALLOWED TO 1
    this will automatically start your queue . Only thing you have to take care if you enable packaging them don't keep too many parallel queue i.e EO_INBOUND_PARALLEL and EO_OUTBOUND_PARALLEL should be less than 20
    Regards,
    Saurabh

  • Java Threads compilation problem

    Hi everyone,
    I've having problems getting a simple thread program to compile, the programs says " ; " expected when there is already one present. I've gone through the program many times and still can't put my finger on whats going wrong. If someone could take a quick look and if possible tell me where I am going wrong.
    Many Thanks
    Its class ThreadA that will not compile
    ***code********************************************
    public class ThreadA extends Thread
    private int id;
    public ThreadA(int i) (id = i);
    public void run()
    for (int i=0}; i < 10; i++);
    try {sleep(1000};)catch (InterruptedException e)();
    System.out.println("Output from Thread " + id);
    import java.io.*;
    public class TestThreads1
    public static void main (String args [] )
    Thread t1 = new ThreadA (1);
    Thread t2 = new ThreadA (2);
    Thread t3 = new ThreadA (3);
    t1.start();
    t2.start();
    t3.start();
    **code***********************************************************

    public class ThreadA extends Thread
    private int id;
    public ThreadA(int i) (id = i); // <-- problem
    public void run()
    for (int i=0}; i < 10; i++); // <-- two problems
    try {sleep(1000};)catch (InterruptedException e)(); // <-- more problems
    System.out.println("Output from Thread " + id);
    }

  • How can i get the source code from java concurrent program in R12

    Hi 2 all,
    How can i get the source code from java concurrent program in R12? like , "AP Turnover Report" is java concurrent program, i need to get its source code to know its logic. how can i get its source code not the XML template?
    Regards,
    Zulqarnain

    user570667 wrote:
    Hi 2 all,
    How can i get the source code from java concurrent program in R12? like , "AP Turnover Report" is java concurrent program, i need to get its source code to know its logic. how can i get its source code not the XML template?
    Regards,
    ZulqarnainDid you see old threads for similar topic/discussion? -- https://forums.oracle.com/forums/search.jspa?threadID=&q=Java+AND+Concurrent+AND+Source+AND+Code&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Sourcing : Error while Running Java Concurrent Program

    Hi All,
    Navigations:
    Application: Sourcing
    Responsibility : Sourcing Buyer
    Concurrent Program : Generate and Store Sourcing response spreadsheet
    I am trying to run
    Java Concurrent Program : Generate and Store Sourcing response spreadsheet in SRS Window,
    it completed with Error status.
    Please let me know How can I run this Concurrent Program with Normal status and able to view/save the Output.
    Please provide resolution on this.

    Thanks for your reply..
    Program: Generate and Store Sourcing response spreadsheet
    ShortName: PON_EXPORT_RESPONSE
    Application: Sourcing
    Executable: ExportResponseCp
    Method: Java Concurrent Program
    Responsibility : Sourcing Buyer.
    Has this ever worked? If yes, any changes been done recently?
    => No
    Is this the seeded concurrent program or a custom one?
    => Its seeded program.
    EBS: R12.1.3
    Login as Sourcing Buyer Responsibility :
    When you create RFQ and then Close RFQ and then create Surrogate quote and after you Export the Spreadsheet in SelfService Pages it generates the output.
    But if You run the concurrent program (Generate and Store Sourcing response spreadsheet) it errors out.
    Error : Exception in thread main java .lang.stringIndexOutOfBoundException:
    Thanks..

  • Java Concurrent Program Errors out

    Hi All,
    Request you to help me in this issue as this is on high priority.
    we have registered a Java Concurrent Program Named Genus Merge Two P45 Pdf's which gives the output in pdf format.
    The concurrent program errors out showing the log as follows :
    GENUS Custom: Version : UNKNOWN
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    GEN_MERGE_TWO_PDFS module: Genus Merge Two P45 Pdf's
    Current system time is 10-MAR-2010 07:10:43
    Exception in static block of jtf.cache.appsimpl.AppsCacheLogger. Stack trace is: oracle.apps.fnd.common.AppsException: oracle.apps.fnd.common.PoolException: Exception creating new Poolable object.
         at oracle.apps.fnd.profiles.Profiles.getProfileOption(Profiles.java:1509)
         at oracle.apps.fnd.profiles.Profiles.getProfile(Profiles.java:362)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfileFromDB(ExtendedProfileStore.java:210)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.getSpecificProfile(ExtendedProfileStore.java:169)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.getProfile(ExtendedProfileStore.java:148)
         at oracle.apps.fnd.common.logging.DebugEventManager.configureUsingDatabaseValues(DebugEventManager.java:1201)
         at oracle.apps.fnd.common.logging.DebugEventManager.configureLogging(DebugEventManager.java:1044)
         at oracle.apps.fnd.common.logging.DebugEventManager.internalReinit(DebugEventManager.java:1013)
         at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:980)
         at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:967)
         at oracle.apps.fnd.common.AppsLog.reInitialize(AppsLog.java:570)
         at oracle.apps.fnd.common.AppsContext.initLog(AppsContext.java:593)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:570)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:524)
         at oracle.apps.fnd.common.AppsContext.<init>(AppsContext.java:292)
         at oracle.apps.fnd.common.WebAppsContext.<init>(WebAppsContext.java:1002)
         at oracle.apps.jtf.cache.ArchitectureWrapper.createAppsContextWithDBCFile(ArchitectureWrapper.java:143)
         at oracle.apps.jtf.cache.ArchitectureWrapper.createDefaultAppsContext(ArchitectureWrapper.java:107)
         at oracle.apps.jtf.cache.ArchitectureWrapper.createAppsContext(ArchitectureWrapper.java:96)
         at oracle.apps.jtf.cache.appsimpl.AppsCacheLogger.<clinit>(AppsCacheLogger.java:43)
         at oracle.apps.jtf.cache.appsimpl.AppsCacheEnvironment.getCacheLogger(AppsCacheEnvironment.java:67)
         at oracle.apps.jtf.cache.CacheManager.initCache(CacheManager.java:711)
         at oracle.apps.jtf.cache.CacheManager.<clinit>(CacheManager.java:378)
         at oracle.apps.fnd.cache.Cache.setCacheFullName(Cache.java:228)
         at oracle.apps.fnd.cache.Cache.initCache(Cache.java:114)
         at oracle.apps.fnd.cache.Cache.<init>(Cache.java:89)
         at oracle.apps.fnd.cache.AppsCache.<init>(AppsCache.java:86)
         at oracle.apps.fnd.cache.AolCaches.getCache(AolCaches.java:155)
         at oracle.apps.fnd.profiles.Profiles.<clinit>(Profiles.java:241)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.init(ExtendedProfileStore.java:498)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.<init>(ExtendedProfileStore.java:119)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at oracle.apps.fnd.common.AppsContext.instantiateProfileStore(AppsContext.java:3959)
         at oracle.apps.fnd.common.AppsContext.makeProfileStore(AppsContext.java:780)
         at oracle.apps.fnd.common.Context.setProfileStore(Context.java:767)
         at oracle.apps.fnd.common.Context.setProfileStore(Context.java:749)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:564)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:524)
         at oracle.apps.fnd.common.AppsContext.<init>(AppsContext.java:292)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:141)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:124)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:127)
    Caused by: oracle.apps.fnd.common.PoolException: Exception creating new Poolable object.
         at oracle.apps.fnd.common.Pool.createObject(Pool.java:1321)
         at oracle.apps.fnd.common.Pool.borrowObject(Pool.java:1062)
         at oracle.apps.fnd.security.DBConnObjPool.borrowObject(DBConnObjPool.java:752)
         at oracle.apps.fnd.security.AppsConnectionManager.borrowConnection(AppsConnectionManager.java:297)
         at oracle.apps.fnd.common.Context.borrowConnection(Context.java:1720)
         at oracle.apps.fnd.common.AppsContext.getPrivateConnectionFinal(AppsContext.java:2306)
         at oracle.apps.fnd.common.AppsContext.getPrivateConnection(AppsContext.java:2243)
         at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:2101)
         at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:1910)
         at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:1754)
         at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:1767)
         at oracle.apps.fnd.common.Context.getJDBCConnection(Context.java:1453)
         at oracle.apps.fnd.cache.GenericCacheLoader.load(GenericCacheLoader.java:168)
         at oracle.apps.fnd.profiles.Profiles.getProfileOption(Profiles.java:1500)
         ... 44 more
    Caused by: java.lang.AbstractMethodError: oracle.sql.LnxLibThin.lnxnuc([BILjava/lang/String;)Ljava/lang/String;
         at oracle.sql.NUMBER.toInt(NUMBER.java:414)
         at oracle.jdbc.dbaccess.DBConversion.NumberBytesToInt(DBConversion.java:2959)
         at oracle.jdbc.driver.OracleStatement.getIntValue(OracleStatement.java:4596)
         at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:536)
         at oracle.apps.fnd.security.ConnectionManager.setClientData(ConnectionManager.java:1497)
         at oracle.apps.fnd.security.ConnectionManager.dbConnect(ConnectionManager.java:1446)
         at oracle.apps.fnd.security.ConnectionManager.dbConnect(ConnectionManager.java:1325)
         at oracle.apps.fnd.security.AppsConnectionManager.makeGwyuidConn(AppsConnectionManager.java:884)
         at oracle.apps.fnd.security.AppsConnectionManager.getGwyuidConn(AppsConnectionManager.java:962)
         at oracle.apps.fnd.security.AppsConnectionManager.makeGuestConnection(AppsConnectionManager.java:780)
         at oracle.apps.fnd.security.DBConnObj.<init>(DBConnObj.java:246)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at oracle.apps.fnd.common.Pool.createObject(Pool.java:1308)
         ... 57 more
    Exception in static block of jtf.cache.CacheManager. Stack trace is: oracle.apps.jtf.base.resources.FrameworkException: oracle.apps.fnd.common.PoolException: Exception creating new Poolable object.
         at oracle.apps.jtf.cache.CacheManager.initCache(CacheManager.java:718)
         at oracle.apps.jtf.cache.CacheManager.<clinit>(CacheManager.java:378)
         at oracle.apps.fnd.cache.Cache.setCacheFullName(Cache.java:228)
         at oracle.apps.fnd.cache.Cache.initCache(Cache.java:114)
         at oracle.apps.fnd.cache.Cache.<init>(Cache.java:89)
         at oracle.apps.fnd.cache.AppsCache.<init>(AppsCache.java:86)
         at oracle.apps.fnd.cache.AolCaches.getCache(AolCaches.java:155)
         at oracle.apps.fnd.profiles.Profiles.<clinit>(Profiles.java:241)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.init(ExtendedProfileStore.java:498)
         at oracle.apps.fnd.profiles.ExtendedProfileStore.<init>(ExtendedProfileStore.java:119)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at oracle.apps.fnd.common.AppsContext.instantiateProfileStore(AppsContext.java:3959)
         at oracle.apps.fnd.common.AppsContext.makeProfileStore(AppsContext.java:780)
         at oracle.apps.fnd.common.Context.setProfileStore(Context.java:767)
         at oracle.apps.fnd.common.Context.setProfileStore(Context.java:749)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:564)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:524)
         at oracle.apps.fnd.common.AppsContext.<init>(AppsContext.java:292)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:141)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:124)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:127)
    Caused by: oracle.apps.jtf.base.resources.FrameworkException: oracle.apps.fnd.common.PoolException: Exception creating new Poolable object.
         at oracle.apps.jtf.base.resources.FrameworkException.convertException(FrameworkException.java:607)
         at oracle.apps.jtf.base.resources.FrameworkException.addException(FrameworkException.java:585)
         at oracle.apps.jtf.base.resources.FrameworkException.<init>(FrameworkException.java:66)
         at oracle.apps.jtf.base.resources.FrameworkException.<init>(FrameworkException.java:88)
         at oracle.apps.jtf.base.resources.FrameworkException.<init>(FrameworkException.java:202)
         at oracle.apps.jtf.base.resources.FrameworkException.<init>(FrameworkException.java:218)
         at oracle.apps.jtf.base.resources.FrameworkException.<init>(FrameworkException.java:249)
         ... 24 more
    Exception in thread "main" oracle.apps.fnd.common.PoolException: Exception creating new Poolable object.
         at oracle.apps.fnd.common.Pool.createObject(Pool.java:1321)
         at oracle.apps.fnd.common.Pool.borrowObject(Pool.java:1062)
         at oracle.apps.fnd.security.DBConnObjPool.borrowObject(DBConnObjPool.java:752)
         at oracle.apps.fnd.security.AppsConnectionManager.borrowConnection(AppsConnectionManager.java:297)
         at oracle.apps.fnd.common.Context.borrowConnection(Context.java:1720)
         at oracle.apps.fnd.common.AppsContext.getPrivateConnectionFinal(AppsContext.java:2306)
         at oracle.apps.fnd.common.AppsContext.getPrivateConnection(AppsContext.java:2243)
         at oracle.apps.fnd.common.AppsContext.getJDBCConnection(AppsContext.java:2101)
         at oracle.apps.fnd.common.AppsContext.getLocalJDBCConnection(AppsContext.java:2481)
         at oracle.apps.fnd.common.AppsContext.getLocalJDBCConnection(AppsContext.java:2416)
         at oracle.apps.fnd.common.AppsContext.getLocalJDBCConnection(AppsContext.java:2397)
         at oracle.apps.fnd.common.ProfileCache.getProfileObject(ProfileCache.java:110)
         at oracle.apps.fnd.common.NativeProfileStore.getSpecificProfileFromDB(NativeProfileStore.java:375)
         at oracle.apps.fnd.common.NativeProfileStore.getProfile(NativeProfileStore.java:314)
         at oracle.apps.fnd.common.logging.DebugEventManager.configureUsingDatabaseValues(DebugEventManager.java:1201)
         at oracle.apps.fnd.common.logging.DebugEventManager.configureLogging(DebugEventManager.java:1044)
         at oracle.apps.fnd.common.logging.DebugEventManager.internalReinit(DebugEventManager.java:1013)
         at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:980)
         at oracle.apps.fnd.common.logging.DebugEventManager.reInitialize(DebugEventManager.java:967)
         at oracle.apps.fnd.common.AppsLog.reInitialize(AppsLog.java:570)
         at oracle.apps.fnd.common.AppsContext.initLog(AppsContext.java:593)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:570)
         at oracle.apps.fnd.common.AppsContext.initializeContext(AppsContext.java:524)
         at oracle.apps.fnd.common.AppsContext.<init>(AppsContext.java:292)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:141)
         at oracle.apps.fnd.cp.request.CpContext.<init>(CpContext.java:124)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:127)
    Caused by: java.lang.AbstractMethodError: oracle.sql.LnxLibThin.lnxnuc([BILjava/lang/String;)Ljava/lang/String;
         at oracle.sql.NUMBER.toInt(NUMBER.java:414)
         at oracle.jdbc.dbaccess.DBConversion.NumberBytesToInt(DBConversion.java:2959)
         at oracle.jdbc.driver.OracleStatement.getIntValue(OracleStatement.java:4596)
         at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:536)
         at oracle.apps.fnd.security.ConnectionManager.setClientData(ConnectionManager.java:1497)
         at oracle.apps.fnd.security.ConnectionManager.dbConnect(ConnectionManager.java:1446)
         at oracle.apps.fnd.security.ConnectionManager.dbConnect(ConnectionManager.java:1325)
         at oracle.apps.fnd.security.AppsConnectionManager.makeGwyuidConn(AppsConnectionManager.java:884)
         at oracle.apps.fnd.security.AppsConnectionManager.getGwyuidConn(AppsConnectionManager.java:962)
         at oracle.apps.fnd.security.AppsConnectionManager.makeGuestConnection(AppsConnectionManager.java:780)
         at oracle.apps.fnd.security.DBConnObj.<init>(DBConnObj.java:246)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
         at oracle.apps.fnd.common.Pool.createObject(Pool.java:1308)
         ... 26 more
    Start of log messages from FND_FILE
    End of log messages from FND_FILE
    oracle.apps.genus.utils.MergePdfs
    Program exited with status 1
    Executing request completion options...
    Finished executing request completion options.
    Concurrent request completed
    Current system time is 10-MAR-2010 07:10:47
    ---------------------------------------------------------------------------

    Hi,
    FYI,
    I am not sure about this error,
    Use the following links, hope it may solve your problem,
    http://oracleappstechnology.blogspot.com/2007/09/oracleappsfndcommonpoolexception.html
    http://www.appsdbatechstuff.com/2008/06/java-workflow-mailer-does-not-startup.html
    http://it.toolbox.com/wiki/index.php/Oracle_Apps_-JavaConcurrent_Program
    Io exception: The Network Adapter could not establish the connection
    Regards,
    Hari

Maybe you are looking for