How to use thread pool in glassfish

I am using jdk 1.6 with glassfish 2.1
in admin console i found threadpools under Configuration> Thread Pools
my questions are
is this thread pool is accessible to programmers (just like in websphere threadpool is accessible to programmers through work manager and asynch beans)
can I do the same thing using glassfish (eg. WorkManager wm = new WorkManager(_threadpool_) )
or is there any other way to do this.
Is there any way to use the threads in the threadpool to run some batch job in parallel?
what exactly the purpose of this threadpool in glassfish, I mean it used internally bu glassfish or programmers have to use it explicitly in there code

It is pretty straight forward. You just create an executor instance and feed it runnable objects. For example:
import java.util.concurrent.*;
public class ExecutorExample {
    static class Worker implements Runnable {
        public Worker(int id) {
            this.id = id;
        public void run() {
            for(int i = 0; i < 100; i++) {
                System.out.printf("Thread %d iteration %d of 100%n", id, i);
                try {
                    Thread.sleep(100);
                catch(Exception e)
        private int id;
    public static void main(String[] args) {
        BlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(200);
        Executor e = new ThreadPoolExecutor(10, 10, 1, TimeUnit.SECONDS, queue);
        System.out.println("Creating workers");
        for(int i = 0; i < 20; i++)
            e.execute(new Worker(i));
        System.out.println("Done creating workers");
}

Similar Messages

  • How to use Connection Pool in ADF ear file creaion from jDev 10.1.3

    Hi,
    We are developing big application in ADF with 10 different modules. We are creating ear file with data source setting.
    How to use connection pool while creating ear file from jDev. Connection pool is alreday created in Application Server 10g.
    What all the setting we need do to make use of connection pool while creating ear file jDev.
    Thanks

    User,
    If you are using ADF Business Components, you can right-click each application module, select "configurations" and edit the configuration you are using. On the initial page of the configuration dialog, you can specify to use either a JDBC URL or a Datasource - you just need to choose Datasource and then provide the name by which to access it.
    John

  • How To Use Connection Pooling in Struts.

    Can Somebody have the idea how to use connection pooling. i want to use jakarta commons dbcp, pool.
    using these packages how can i implement the connection pooling for my web application. If Anybody have some idea plz contect me.
    If Somebody have sample code plz send.
    Thks in Advance,

    Read the documentation...?

  • How to use threads in JSP???

    hello
    i want to use threads with JSP.
    i want to write a jsp page which will
    start 2 different threads. the 1st thread should just display a message and the second page should redirect this page to another jsp page.
    till the redirection is goin on, the message should be displayed in the browser from the 1st thread.
    i dont know actually how to use threads in JSP by implementing the Runnable insterface, if not m then how do i do it ??
    thanx
    Kamal Jai

    Why do you want to use threads to do this ??
    If you write a message and do a redirection, the message will be displayed until the other page will be loaded into the browser...
    I already launched a thread from a JSP but it was for a four hour process where the user can close his browser windows.

  • How to use Threading Concept in oracle

    Hi all,
    I am having requirement such that i have to execute a function after insert of data in one table.due to performance issues i have to execute this function using java pooling.if anybody having idea regarding this one please share.
    I have tried by using simple javaThreading but it is not working.
    Regards,
    Ramesh.

    public static void main (String args[] ) throws Exception {
    log("main thread is: " + Thread.currentThread());
    TaskProcessor taskProcessor[] = new TaskProcessor[5];
    Thread threads[] = new Thread[taskProcessor.length];
    for (int i=0; i<taskProcessor.length; i++) {
    taskProcessor[i] = new TaskProcessor(i);
    threads[i] = new Thread(taskProcessor);
    threads[i].start();
    for (int i=0; i<taskProcessor.length; i++) {
    if (threads[i].isAlive()) {
    threads[i].join();
    * Thread to run many concurrent connections
    private static class TaskProcessor implements Runnable {
    private int number = 0;
    public TaskProcessor(int number) {
    this.number = number;
    public void run() {
    try {
    log("Thread started: " + Thread.currentThread());
    // Get a connection
    Connection conn = ConnectionFactory.getConnection();
    // Sleep and yield so that other threads can run
    Thread.yield();
    //Thread.sleep(1000);
    Thread.yield();
    Connection conn1 =ConnectionFactory.getConnection();
    log("Thread " + Thread.currentThread() + ": First Con: " + conn);
    log("Thread " + Thread.currentThread() + ": Second Con: " + conn1);
    if (conn1 != conn)
    throw new Exception("Connections dont match: " + conn + ": " + conn1);
    log("Thread " + Thread.currentThread() + " over");
    } catch (Exception e) {
    System.out.println("Exception"+e);
    private String getLeastLoadedPool() {
    if (lastNodePoolUsed == null) {
    lastNodePoolUsed = "1";
    return "1";
    if (lastNodePoolUsed.equals("1")) {
    lastNodePoolUsed = "2";
    return "2";
    else {
    lastNodePoolUsed = "1";
    return "1";
    // in connection factory get connection factory
    public synchronized static Connection getConnection() throws Exception {
    if (singletonFactory == null)
    singletonFactory = new ConnectionFactory();
    String poolId = (String) nodePoolTracker.get();
    if (poolId == null) {
    // one and store it in the thread
    poolId = singletonFactory.getLeastLoadedPool();
    nodePoolTracker.set(poolId);
    log("No Pool Associated:" + Thread.currentThread() + ", adding: " + poolId);
    return singletonFactory.getConnection(poolId);
    else {
    log("Pool Associated:" + Thread.currentThread() + ", " + poolId);
    return singletonFactory.getConnection(poolId);
    after creating this class by using lodajava i have loaded in oracle.
    Regrads,
    Ramesh

  • How to use connection pool of datasource to make applications run faster?

    Hi, erveryone
    I prepare to implement a servlet that access database and do sync with client.
    When I access database, I would like to configure a datasource in weblogic and use connection pool.
    In order to make servlet application run significantly faster, my servet how to use connection poo is much moreresonable?
    For example, my servlet has many times database access. Is it true that geting and close a connection whenever
    one time database access finished?
    If from the servlet begins, the db connection is hold till servlet finalize. Will the solution affect the servlet performance? Is there any official document to introduce connection pool program? I search some documents.
    <The Java EE 6Tutorial> introduce some simple intruduction about connection pool.

    1. Use WebLogic Servers Data Source for Database Connections.
    2. Open and close the connections where you need it. Dont open it in begin and close in finalise. That is bad practice.
    3. Even when you invoke Connection.close () webLogic will not close the connection. it will commit the transaction and return it back to the pool rather than physically closing the DB connection.
    4. You can tune data source for minimum, maximum and increments of connections that you need based on your application requirement.

  • How to use thread only for progress bar.....

    Hello,
    I am working on an application which is taking time to load. Now I want to use a progress bar to tell the user of the application that It is taking time to load. How to do it... I read the Java swing tutorial and went through the example. Please tell me what to do. Because I am unfamiliar with Threads and I am not using thread anywhere in my application.

    You are using threads. All Java execution occurs on threads. Write a Java GUI and you're in a multithreaded environment - there's no way out of that.
    If your "application is a complex one" then you would be better advised to understand threads than to try and pretend that they don't exist. For a start, if you don't think you're using threads then you're destined to run in to all sorts of problems as regards an unresponsive GUI, as you're probably now finding out.

  • How to use Connection pool in Reports

    Dear All,
    Please help me How to create Connection pool for Reports and How to use in Reports.
    Present i am using the report by passing parameter as P_JDBCPDS=username/password@databaseName. I thought this will not manage the coonection pool.
    For all reports and every time i am passing userName/password, how to avoid this. Please help me.
    1. How to create Connection pool for Report Server
    2. How to use that Connection pool in the Reports.
    Please help me.
    With Regards,
    Srinivas.

    Until now, I have not worked unfortunately with a connection pool, but, I have found a documentation about the Creating an Internal Connection Pool.
    http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b13593/cpdef.htm

  • How To Use Connection pooling with j2sdkee1.3?

    hi!
    How to use javax.sql.ConnectionPoolDataSource and
    javax.sql.PooledConnection with j2sdkee1.3.?
    In j2ee1.3's deployment tool,
    to specify the resource factories,
    javax.sql.ConnectionPoolDataSource is not available.
    Please Help me to use Connection pooling.
    Dhaya.

    Vendor implementations usually have a fair amount of optimization. For J2EE apps, my concern would be using your pool in transactional calls. When you make a transactional call across several beans/methods, the vendor's pool makes sure that you get the same connection each time you get a connection from the pool so that if you want to rollback the work (in case an error occurs), you can. Does your current connection pool support this?

  • How to use threads to reconnect a socket to a server in TCP/IP

    I want to know how to reconnect a socket to a server in TCP.
    Actually i wanted to do reconnection whenever a SocketException for broken connection etc. is thrown in my code. This I want to do for a prespecified number of times for reconnection in case of broken connection.When this number decrements to zero the program will exit printing some error message. I was planning to use threads by way of having some Exception Listeners but i am not sure How?
    Any suggestions will be really helpful..
    please help.
    Edited by: danish.ahmed.lnmiit on Jan 28, 2008 2:44 AM

    I want to know how to reconnect a socket to a server in TCP.There is no reconnect operation in TCP. You have to create a new Socket.

  • How to use Thread

    Hi,
    I am trying to write a program that does a background process. The process is controlled by two buttons: Start and Stop. I thought I'd use threads, but it does not work; the start button remains depressed and the user cannot click on the Stop button. The line calling run() is executed and execution transfers to the run method in my Thread subclass, which is wrapped in an infinite loop. The line after the run() method is never reached. It is as if it is not creating an extra thread at all.
    I have written something basic which is similar, the same problem occurs with this code:
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class CounterFrame extends JFrame {
        private JPanel pnButtons;
        private JButton btStart;
        private JButton btStop; 
        private ThreadTester threadtester;
        public CounterFrame() {
            pnButtons = new JPanel();
            btStart = new JButton("Start");
            btStop = new JButton("Stop");
            btStart.addActionListener(new StartListener());
            btStop.addActionListener(new StopListener());   
            pnButtons.add(btStart);
            pnButtons.add(btStop);
            add(pnButtons);
            pack();
            threadtester = new ThreadTester();
        private class StartListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                threadtester.run();
        private class StopListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                try {
                    threadtester.sleep(Long.MAX_VALUE);
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
        private class ThreadTester extends Thread {
            int counter;
            public ThreadTester() {
                counter = 0;
            public void run() {
                while(true) {
                    System.out.println(counter);
                    counter++;
                    try {
                        sleep(1000);
                    } catch (InterruptedException ex) {
                        ex.printStackTrace();
                    yield();
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new CounterFrame().setVisible(true);
    }Can anyone advise where I am going wrong, please?

    Please run, don't walk to the article on the Sun site (you can search for it) entitled Concurrency and Swing (or something similar). Problems I see include:
    1) Don't call run on a thread as that will just "run" the run method and not create a background thread. Instead you call "start".
    2) Don't call Thread.sleep() on the EDT or the Event Dispatch Thread. This is the single thread that Swing uses to draw components and to interact with the user. Calling Thread.sleep on it will put your whole program to sleep which is not what you want.
    3) Consider using a Swing Worker, or better still a Swing Timer.
    Again, read the article and you will understand this better.

  • How to use Connection Pool on WLS 10.0 MP2?

    Hello there!
    I have a WS and i use ibatis to talk iwth a Oracle DB, but i have a requirement to use connection pool by wls and i dont where should i do this to my application.
    I just have this method to the connection
    private static void initDb() throws IOException, SQLException {
              log.info("Conectando a bd");
              String sqlMapResource = "com/app/activacion/db/sqlMapConfig.xml";
              Reader reader = Resources.getResourceAsReader(sqlMapResource);
              SqlMapClient sqlMapClientIbatis =
                   SqlMapClientBuilder.buildSqlMapClient(reader,properties);
              List<String> n = (List<String>) sqlMapClientIbatis.queryForList("test");
              log.debug("n: " + n);
              log.info("Conexion a BD realizada.");
    And my sqlMapConfig.xml is
    <sqlMapConfig>
         <settings cacheModelsEnabled="true"
              enhancementEnabled="true"
              lazyLoadingEnabled="true"
              maxRequests="320"
              maxSessions="128"
              maxTransactions="32"/>
         <transactionManager type="JDBC">
              <dataSource type="DBCP">
                   <property name="driverClassName" value="oracle.jdbc.OracleDriver" />
                   <property name="url" value="${db.connectionURL}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
              </dataSource>
         </transactionManager>
         <sqlMap resource="com/epcs/facturacionpostpago/activacionbb/db/statements.xml" />
    </sqlMapConfig>
    Can u give me an advice to set the connection pool please?
    Thanx in advance!
    Edited by: mgaldames on 02-jun-2010 10:54

    According to a google hit, it looks like you should be able to do something like this:
    http://www.j2eegeek.com/blog/2005/01/31/ibatis-where-have-you-been-all-my-life/
    First, configure a datasource in the wls console, the example uses:
    jdbc/jpetstoreDS
    as the JNDI name.
    Then it looks like the following syntax works for the mapping that refers to that datasource, keep in mind your servername/port may be different.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"?>
    <sqlmapconfig>
    <settings cacheModelsEnabled="false" enhancementEnabled=" true" lazyLoadingEnabled="true"
    maxRequests="32" maxSessions="100" maxTransactions="100" useStatementNamespaces="false"/>
    <transactionmanager type="JDBC">
    <datasource type="JNDI">
    <property name="context.java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/>
    <property name="context.java.naming.provider.url" value="t3://localhost:7001"/>
    <property name="DataSource" value="jdbc/jpetstoreDS"/>
    </datasource>
    </transactionmanager>
    <sqlmap resource="com/j2eegeek/ibatis/dao/maps/Account.xml"/>
    </sqlmapconfig>

  • How to use Threads in Java?

    Hi all,
    I want to run many programs in the same time. So i want to know if anybody can help me using threads in java. Any help or code will be very appreciated!
    Thanks in advance,
    A. Santos

    All you have to do is create classes that extend Thread, implement their run() methods and then instantiate and call their start() methods:
    public class Class1 extends Thread {
      public void run() {
        // do what you need to do
    public class Class2 extends Thread {
      public void run() {
        // do what you need to do
    public class Class3 extends Thread {
      public void run() {
        // do what you need to do
    public class Main {
      public static void main (String [] args) {
        Class1 c1 = new Class1();
        Class2 c2 = new Class2();
        Class3 c3 = new Class3();
        c1.start();
        c2.start();
        c3.start();
    }

  • How to use connection pools in production environment

    Hai
    We are using Statless Session beans which will call bean managed entity beans
    as a developer we completed the first phase of our project successful but when
    comming to the production environment they(Higher authoritites of the company)
    are asking abt the connection pools. Suppose if my wlserver5.1 has 100 hits per
    a second how many connection pools i need to put in the production envirornment
    and also is it the right way to increase the connectionpools depends upon the
    clients hits????. Can anybody help me regarding this It is very urgent for us.
    Cheers Kiran Nallam

    Hi Aravind,
    It can be used only for calculation kinda "minimum size".
    Nothing can prevent a developer from writing something
    like this:
    Connection con1 = ds.getConnection();
    Connection con2 = ds.getConnection();
    Connection con3 = ds.getConnection();
    Regards,
    Slava Imeshev
    "Aravind Krishnasamy" <[email protected]> wrote in message news:3bfa85f6
    You can fix the size of the weblogic connection pool depending on yourexecute
    thread count value. For example the default value of execute thread countvalue
    is 15. So at a given point of time you cannot use more then 15 databaseconnection.
    Database connection pool size should be equal to or less then the size ofexecute
    thread count
    "Slava Imeshev" <[email protected]> wrote:
    Hi Kiran,
    It's hard to provide exact dependence between number of hits
    and actual number of consumed connections because it's a highly
    variable distributed environment. But the general approach is
    simple - before rolling out your application, make sure you
    tested it under simulated peak load. Your connection pool should
    have enough connections to serve peak load. Without such a testing
    you will never know whether your app scales or not.
    Regards,
    Slava Imeshev
    "Kiran" <[email protected]> wrote in message
    news:3bf9d676$[email protected]..
    Hai
    We are using Statless Session beans which will call bean managed entitybeans
    as a developer we completed the first phase of our project successfulbut
    when
    comming to the production environment they(Higher authoritites of thecompany)
    are asking abt the connection pools. Suppose if my wlserver5.1 has100
    hits per
    a second how many connection pools i need to put in the productionenvirornment
    and also is it the right way to increase the connectionpools dependsupon
    the
    clients hits????. Can anybody help me regarding this It is very urgentfor
    us.
    Cheers Kiran Nallam

  • How to use module pool program in my custom report?

    Hi,
    I am developing a custom report in abap. I want to fetch data from a standard module pool program.I want output of this standard module pool program to be used in my standad report.Submit cannot be used with module pool programs. How can i do this?Can u please suggest?

    HI friend,
    For this you can directly use the table fields i.e. each and every module pool screen fields will be having the table name along with its fields (which you can see by double clicking the field and selecting technical settings button) and since it is a standard module pool program that will get populated directly. So you can get the screen field values directly from the table. I think this will help. Please try and let us know wheather it is solved.
    Thanks and regards,
    Sri Hari Anand Kumar
    Edited by: srihari.kumar on Apr 6, 2011 3:31 PM

Maybe you are looking for