SIÇÁ·ÎÁ§Æ® ½Ç¹«°æÇè¹ÙÅÁ Àü¹®ÀÚ¹Ù°³¹ßÀÚ°øµ¿Ã¼    
    WASÀü¹®±â¼ú/½Ã½ºÅÛÀå¾ÖÁø´Ü/¼º´ÉÀÌ·Ð/ÄÁ¼³ÆÃ
¾ÆÀ̵ð: 
ºñ¹Ð¹øÈ£: 
[ȸ¿ø°¡ÀÔ]
¡ßApplicationServer
-------------------- 
- ¾îÇø®ÄÉÀ̼Ǽ­¹ö

- ATG Dynamo
- BEA WebLogic
- BolandEnterpriseServer
- Evermind Orion Server
- Fujitsu Interstage
- GemStone's GemStone/J
- HP Netaction
- IBM WebSphere
- IONA iPortal
- InfronTech WebTide
- Macromedia JRun
- Marc Fleury's JBoss
- Oracle 9iAS/OAS/OSDK
- Persistence PowerTier
- SilverStream eXtend
- Sun/Netscape iPlanet
- Sybase EAServer
- TmaxSoft JEUS

- ¼­ºí·¿¿£Áø
(JServ,Tomcat,Resin,..)

- eclipse/Plugin
- Other IDE Tools
Áú¹®Àº [¹¯°í´äÇϱâ]¶õ¿¡¸¸ ¿Ã·ÁÁÖ¼¼¿ä









ÃÖ±Ù¿¡ Å͵æÇÑ »õ·Î¿î °ÍÀÌ ÀÖ³ª¿ä? ¸Ó¸® ¼Ó¿¡ ³Ö¾î µÎ¸é ±Ý¹æ Àؾî¹ö¸®ÁÒ? ÀÛÀº °ÍÀÌ¶óµµ ±¦ÂúÀ¸´Ï À̰÷¿¡ ¿Ã·Á³õ°í ³²µé°ú °øÀ¯ÇϽÃÁö¿ä.. ¿Ã¸±¸¸ÇÑ ¸Þ´º°¡ ¾ø´Ù±¸¿ä? ¸¸µé¾î µå¸±²²¿ä.


[ÃÖ±Ù ¿Ã¶ó¿Â ±Ûº¸±â] °Ë»ö¾î:
 JavaResource | API Tips | Open Source | APM | ApplicationServer | Unix/DB/JVM/Etc | Q&A/Help
¡ß Java Resources
--------------------
- °øÁö»çÇ×
- ÃÖ±Ù IT ¼Ò½Ä
- ¼¼¹Ì³ª¼Ò½Ä
- À̺¥Æ® & ÇÁ·Î¸ð¼Ç

- Ãßõ¹®¼­(2006)
- Ãßõ¹®¼­(2003-2005)
- Ãßõ¹®¼­(±¸)

- °ü·Ã »çÀÌÆ®

- ¹¯°í´äÇϱâ @
- ¹¯°í´äÇϱâ-BACKUP @
- ±â¼ú Åä·ÐÀå @
- ÀÏ¹Ý Åä·ÐÀå @
- »çȸ Åä·ÐÀå @


- ÇÁ·ÎÁ§Æ®½Ç¹«ÄÁ¼³ÆÃ@

- ±³À°/°­ÀÇ/°­ÁÂ
- ÇÁ·ÎÁ§Æ®/¼Ö·ç¼ÇÁ¦¾È
- ±¸Àζõ
- ±¸Á÷¶õ

- Àǰ߳ª´®ÅÍ/Àâ´ã

- ÀÚ¹Ù¼­ºñ½º³ÝÀº...
¡ß Java API Tips
--------------------
- Programming Tips
- JDC Tech Tips

- Servlet/JSP
- J2EE/EJB
- XML/SOAP/UDDI/WSDL
- Jakarta POI
- JDBC
- Mobile Java
- Applet,Swing,SWT
- CORBA
- RMI
- JavaMail
- HTML/HTC/css/js
- Web ÀϹÝ

- ¼­ºí·¿¿£Áø @
(JServ,Tomcat,JRun,..)
¡ß Open Source
----------------------
- Eclipse/Plugin
- Apache Struts
- JDF Framework
  - Download / API

- Open Source Q&A
* ¿ÀǼҽº °Ô½ÃÆÇ
  ½Åû¹Þ¾Æ¿ä.
¡ß APM
----------------------
- Performance Forum
- Jennifer
  - Consulting Doc.
  - »ç¿ëÈıâ/±â´ÉÃß°¡¿äû
  - Jennifer FAQ
  - Jennifer Q&A
  - Jennifer Download
- CA/Wily
- Mercury Topaz/J2EE Diag.
- Symantec i3
- Borland Optimizeit
- Compuware Vantage
¡ßApplicationServer
-------------------- 
- ¾îÇø®ÄÉÀ̼Ǽ­¹ö

- ATG Dynamo
- BEA WebLogic
- BolandEnterpriseServer
- Evermind Orion Server
- Fujitsu Interstage
- GemStone's GemStone/J
- HP Netaction
- IBM WebSphere
- IONA iPortal
- InfronTech WebTide
- Macromedia JRun
- Marc Fleury's JBoss
- Oracle 9iAS/OAS/OSDK
- Persistence PowerTier
- SilverStream eXtend
- Sun/Netscape iPlanet
- Sybase EAServer
- TmaxSoft JEUS

- ¼­ºí·¿¿£Áø
(JServ,Tomcat,Resin,..)

- eclipse/Plugin
- Other IDE Tools
¡ßUnix/DB/JVM/Etc
--------------
- Unix/Network
- Hacking/Cracking

- DataBase
- JDBC @

- JVM/JDK Issue
- ±âŸ ÀÚ·á½Ç
¡ß Q&A/Help
--------------------
- ¹¯°í´äÇϱâ
- ¹¯°í´äÇϱâ-BACKUP
- Åä·ÐÀå
- ÇÁ·ÎÁ§Æ®½Ç¹«ÄÁ¼³ÆÃ
- Framework Q&A @
- Jennifer Q&A @

- °Ô½ÃÆÇ »ç¿ë¹ý
- ÀÚ¹Ù¼­ºñ½º³ÝÀº... @
IBM WebSphere Application Server
  [±Û¸ñ·Ï /½Ã°£¼ø] [´ä±Û¾²±â] [ÇÁ¸°Æ®]   
Á¦¸ñ : Re: Connection Pool & PreparedStatement Cache Size
±Û¾´ÀÌ: ÀÌ¿ø¿µ(javaservice) 2001/07/20 04:49:55 Á¶È¸¼ö:31248 ÁÙ¼ö:311
>
> {Ä¿¼­°¡ ³»·Á°¡Áö ¾Ê´Â±º¿ä}
> {¼Õ´Ô(guest)}
>
> ¿À¶óŬ 8iÀ» »ç¿ëÇϰí Àִµ¥ Ä¿¼­ÀÇ ¼ö°¡ °è¼Ó Áõ°¡ ÇÏ´Ù°¡ ³»·Á °¡Áö¸¦ ¾Ê½À´Ï´Ù.
> ±×·¡¼­ ÄÚµùÀÌ À߸ø µÇ¾ú³ª ÇØ¼­ ÀüºÎ È®ÀÎÀ» ÇØ¼­ finally¾È¿¡ ResultSet°ú Statement,
> Connection ºÎºÐÀÇ close()À» È®½ÇÈ÷ ÇßÀ¸¸é ¸î°³ÀÇ ÆäÀÌÁö¸¸ °¡Áö°íµµ Å×½ºÆÃÀ» ÇØ 
> º¸¾Ò½À´Ï´Ù. ÇÏÁö¸¸ ¿©ÀüÈ÷ Ä¿¼­´Â ³»·Á¿ÀÁö ¾Ê½À´Ï´Ù.
> ±×·¡¼­ Connection PoolÀ» ¾²Áö ¾Ê°í Á÷Á¢ Oracle Driver(type 4, thin Driver)À» »ç¿ëÇϼ­
> ÇϳªÀÇ Äõ¸®¸¦ ³¯¸®¸é Á¤»óÀûÀ¸·Î Ä¿¼­°¡ ³»·Á ¿À´Âµ¥ ÀÌ°Ç Connection Pool¸¸ »ç¿ëÇϸé
> Ä¿¼­ÀÇ ¼ö°¡ ³»·Á ¿ÀÁö ¾Ê´Â±º¿ä.
> 
> ..(Áß°£»ý·«)...
>
> Á¦°¡ ±Ã±ÝÇѰÍÀº WebSphere¿¡¼­µµ ¶È°°Àº ¹®Á¦°¡ ¹ß»ýÇϴµ¥ °ú¿¬ ÀÌ·¸°Ô ÇÏ¸é ¼º°øÇÏ´ÂÁö
> ±×¸®°í ¿Ö ÀÌ·± Çö»óÀÌ ¹ß»ý ÇÏ´ÂÁö ÀÌ·± ¹®Á¦¿¡ ´ëÇØ¼­ °í¹ÎÇϽôٰ¡ ÇØ°áÇϽźР
> ÀÖÀ¸¸é ´äº¯ ºÎʵ右´Ï´Ù.
>  


------------------------------------------------------------------------------
>
> {Connection Pool °ú prepareStatement ...}
> {¹®Àå¿ë(guest), mjdragon@chollian.net}
>
>  ¾È³çÇϼ¼¿ä.
>  Ç×»ó ÀÚ¹Ù¼­ºñ½º³ÝÀ» ¾Ö¿ëÇÏ´Â »ç¶÷ÀÔ´Ï´Ù.
>  
>  ÀúÀÇ Áú¹®Àº prepareStatement¿¡ °üÇÑ °ÍÀÔ´Ï´Ù.
> 
>  finally¿¡¼­ Á¤»óÀûÀ¸·Î close¸¦ Çϰí ÀÖ½À´Ï´Ù.
>  ±×·±µ¥ statement resource°¡ Çϳª¾¿ ÁÙ¾îµé°í ÀÖ½À´Ï´Ù.
> 
>  Á¦°¡ ãÀº °á·ÐÀ» ¸»¾¸µå¸®¸é
>  prepareStatementÀÇ query¹®ÀåÀÌ ÃÖÃÊ·Î Çѹø ½ÇÇàµÇ¾îÁú ¶§
>  ±× statement°¡ Çϳª¾¿ ÁÙ¾îµå´Â °Í °°½À´Ï´Ù.
>  ±×´ÙÀ½¿¡ ¶È°°Àº ¼­ºí¸´À» ½ÇÇàÇßÀ» ¶§´Â statement°¡ ÁÙ¾îµéÁö ¾Ê½À´Ï´Ù.
> 
>  wasÀÇ connection poolÀ» »ç¿ëÇßÀ» ¶§ ¹ß»ýÇÏ´Â ¹®Á¦ÀÎ°Í °°Àºµ¥...
>  ´ÙÀ½ ¼Ò½º¸¦ º¸½Ã°í Ʋ¸° °÷ÀÌ ÀÖÀ¸¸é ã¾ÆÁÖ¼¼¿ä... Á¦¹ß~~~
> 
>  ...(¼Ò½º »ý·«)...
>



´ÙÀ½°ú °°Àº ¼Ò½º·Î À§ Áõ»óÀ» Å×½ºÆ® ÇØ º¸¾Ò½À´Ï´Ù.

-------------------------------------------------------------------------------
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.util.*,java.sql.*,javax.sql.*,
                 javax.naming.*" %>
<%!
    private static String source  = "jdbc/ORA8i_THIN";
    //private static String source  = "jdbc/ORA8i_OCI";
    private static String user = "scott";
    private static String password = "tiger";
    private static DataSource ds = null;
    private static int MAX_COUNT = 250;
    private static int count = 0;
    private static String[] queries = new String[MAX_COUNT];
    static {
        StringBuffer blanks = new StringBuffer();
        for(int i=0;i<MAX_COUNT;i++){
            queries[i] = "select count(*) " + blanks.toString() + "from tab";
            blanks.append(' ');
        }
    }


    public int getNumOfStmt(Connection conn) {
        int n = -1;
        
        Vector stmts = new Vector();
        try {
            for(n=0;n<5000;n++){
                Statement stmt = conn.createStatement();
                stmts.addElement(stmt);
            }
        }
        catch(Exception e){}
        finally{
            Enumeration enum = stmts.elements();
            while(enum.hasMoreElements()){
                Statement stmt = (Statement)enum.nextElement();
                try{stmt.close();}catch(Exception e){}
            }
        }
        return n;
    }
%>
<html><body><xmp>
<%
    try {
        java.util.Hashtable props = new java.util.Hashtable();
        props.put(Context.INITIAL_CONTEXT_FACTORY, 
            "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
        Context ctx = null;
        try {
            ctx = new InitialContext(props);
            ds = (DataSource)ctx.lookup(source);
        }
        finally {
            if ( ctx != null ) ctx.close();
        }
    }
    catch (Exception e) {
        out.println(e.toString());
    }

    Connection conn = null;
    PreparedStatement pstmt = null;
    try {
        conn = ds.getConnection(user, password);
        out.println("before:" + getNumOfStmt(conn));

        try {
            pstmt = conn.prepareStatement(queries[count++]);
            if ( count >= MAX_COUNT ) count = 0;
            ResultSet rs = pstmt.executeQuery();
            if( rs.next() ){
                out.println("query : ok (" + rs.getString(1) + ")");
            }
            rs.close();
        }
        finally {
            if ( pstmt != null ) try { pstmt.close();}catch(Exception e){}
        }
        out.println("after:" + getNumOfStmt(conn));
    }
    catch(Exception e){
        out.println("ERROR: " + e.toString());
    }
    finally {
        if ( conn != null ) try { conn.close();}catch(Exception e){}
    }

%>
</xmp></body></html>
-------------------------------------------------------------------------------
NOTE: ÀÌ »ùÇÃÀº ¹Ýµå½Ã Oracle¿¡¼­¸¸ Å×½ºÆ®Çϼ¼¿ä.

Oracle 8.1.6 JDBC Thin Driver ¸¦ ÀÌ¿ëÇÏ¿© Windows2000, WebSphere 3.5.4 ¿¡¼­ Å×½º
Æ®ÇÑ °á°ú ¾Õ¼­ Áú¹®ÇÑ ºÐÀÌ ¾ê±âÇÑ Áõ»óÀÌ ÀçÇöµÇ¾ú½À´Ï´Ù.

±×·¯³ª, ÀÌ ºÎºÐÀº Áú¹®ÇÑ ºÐÀÌ ¿ì·ÁÇÑ °Í°ú °°Àº Á¦Ç°ÀÇ ¹ö±×´Â ¾Æ´Õ´Ï´Ù. ¾îÇø®ÄÉÀ̼Ç
¼­¹ö Á¦Ç°±ºµé¿¡¼­´Â ´ëºÎºÐ ÀÚ»ç Á¦Ç°ÀÇ ¼º´ÉÇâ»óÀ» À§ÇØ °®°¡Áö ³ë·ÂÀ» Çϱ⠸¶·ÃÀÔ´Ï´Ù.
"PrepareStatement ¿¡ ´ëÇÑ Ä³½Ì±â´É"ÀÌ ´ëÇ¥ÀûÀÌ ¿¹°¡ µÉ °ÍÀÔ´Ï´Ù.

WebSphere ¾îÇø®ÄÉÀ̼Ǽ­¹ö´Â DB Vendor °¡ Á¦°øÇÏ´Â JDBC Driver ¸¦ ÀÌ¿ëÇÏÁö¸¸, 
±×°ÍÀ» ±×´ë·Î »ç¿ëÄ¡ ¾Ê°í Ãß°¡ÀûÀÎ ±â´ÉÀ» Á¦°øÇϱâ À§ÇØ, º°µµÀÇ Proxy Ŭ·¡½º¸¦ ±¸Çö
ÇÏ¿© µ¿ÀÛÇϰí ÀÖ½À´Ï´Ù. 

°³¹ßÀÚÀÇ ÇÁ·Î±×·¥ ¼Ò½º·Î runtime ½Ã¿¡ ³Ñ¾î ¿À´Â java.sql.PreparedStatement Interface ÀÇ
instance ´Â DB Vendor °¡ Á¦°øÇÏ´Â ±¸ÇöŬ·¡½ºÀÇ instance ÀÏ °Í °°Áö¸¸, »ç½ÇÀº
com.ibm.ejs.cm.proxy.OraclePreparedStatementProxy ¿Í °°ÀÌ DB ¿¡ µû¶ó ¹Ì¸® ÁغñµÈ,
WebSphere ¿¡¼­ Çѹø ´õ Wrapping µÈ Ŭ·¡½ºÀÇ instance ÀÎ °ÍÀÔ´Ï´Ù.

¿©±â¿¡ Áß¿äÇÑ ±â´É ÁßÀÇ Çϳª°¡ PreparedStatement ¿¡ ´ëÇÑ Ä³½Ì±â´ÉÀÔ´Ï´Ù.
µ¿ÀÏÇÑ ÇüÅÂÀÇ SQL ¹®ÀåÀÌ Çѹø ¼öÇàµÇ¸é, ±× ¹®Àå¿¡ ÇØ´çÇÏ´Â PreparedStatement ´Â
°³¹ßÀÚ°¡ ¸í½ÃÀûÀ¸·Î pstmt.close() ¸¦ ¼öÇàÇÏ¿©µµ, ½ÇÁ¦ release µÇÁö ¾Ê°í, ³»ºÎÀûÀ¸·Î
ij½ÌÀ» À§ÇÑ Hashtable ¿¡ ³²¾Æ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á, µ¿ÀÏÇÑ SQL¹®ÀåÀ» ´Ù½Ã
¿äûÇÒ °æ¿ì¿¡ DB ¿ÍÀÇ ÆÄ½Ì´Ü°è°¡ »ý·«µÊÀ¸·Î ÀÎÇØ ¼º´ÉÀ» ³ôÀÌ·Á´Â °ÍÀÌÁö¿ä...

(¹°·Ð PreparedStatement ÀÚü°¡ ±×·¯ÇÑ ±â´ÉÀÌ ÀÖÁö¸¸, ±×°ÍÀº ±× PreparedStatement°¡
½ÇÁúÀûÀ¸·Î close() µÇÁö ¾Ê°í ¹Ýº¹ÀûÀ¸·Î »ç¿ëµÉ ¶§ÀÇ °æ¿ì¿¡¸¸ ±×·¸½À´Ï´Ù. ±×·¯³ª
½Ç ÇÁ·ÎÁ§Æ®ÀÇ °³¹ßÆÐÅÏÀº PreparedStatement ¸¦ »ç¿ëÇÏ°í °ð¹Ù·Î pstmt.close()¸¦
ÇÒ ¼ö ¹Û¿¡ ¾ø´Â °³¹ß±¸Á¶»óÀÇ ÇüÅÂ¿Í »óÃæµÇ°í Àֱ⿡ ½ÇÁúÀûÀÎ PreparedStatementÀÇ
ij½Ì±â´ÉÀº DB Vendor ÀÇ JDBC Driver ¸¸À¸·Î´Â ÀüÇô È¿°ú°¡ ¾ø¾ú½À´Ï´Ù.)

ÀÌ·¯ÇÑ ³»¿ëÀº TheServerSide.com ÀÇ ¾Æ·¡ ±Û¿¡¼­ ¾ÆÁÖ »ó¼¼È÷ ¼³¸íµÇ°í ÀÖ½À´Ï´Ù.
http://www.theserverside.com/resources/article.jsp?l=Prepared-Statments


Ưº°ÇÑ ÁöÁ¤ÀÌ ¾ø´Â ÇÑ, WebSphere V3 ÀÇ °æ¿ì, PreparedStatement ¿¡ ´ëÇÑ Ä³½Ã »çÀÌÁî
(statementCacheSize)´Â 100 ÀÔ´Ï´Ù.


ÀÌ ¹®Á¦´Â ´Ù¼Ò ±íÀÌ ÀÖ°Ô °í¹ÎÇØ º¸½Ç ¹ýÇÑ »çÇ×Àε¥, ¿¹¸¦ µé¾î, Oracle ÀÇ 
init???.ora ÆÄÀÏ¿¡¼­ "open_cursors = 50" ÀÌ defualt °ªÀÔ´Ï´Ù. (½Ç ÇÁ·ÎÁ§Æ®¿¡¼­´Â ÀÌ
¼öÄ¡¸¦ ÃÖ¼ÒÇÑ 200 ÀÌ»óÀ¸·Î ¿Ã¸®°ï ÇÕ´Ï´Ù.) ¸¸¾à, ¼­·Î´Ù¸¥ PreparedStatement ÀÇ °¹¼ö°¡
50 °³°¡ ³Ñ°Ô Á¸ÀçÇϰí ÀÖ´Ù¸é,(´ëºÎºÐÀÇ ÇÁ·ÎÁ§Æ®¿¡¼­ 50°³ ÀÌ»óÀº µÇ°ÚÁö¿ä), ¿î¿µÁß¿¡
´ÙÀ½°ú °°Àº ¿¡·¯¸¦ ¸¸³ª½Ç ¼ö ÀÖ½À´Ï´Ù.

-------------------------------------------------------------------------------
before:1
ERROR: java.sql.SQLException: ORA-00604: ¼øÈ¯ SQL ·¹º§ 1 ¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù
ORA-01000: ÃÖ´ë ¿­±â Ä¿¼­ ¼ö¸¦ ÃʰúÇß½À´Ï´Ù

before:0
ERROR: com.ibm.ejs.cm.portability.ResourceAllocationException: 
ORA-01000: ÃÖ´ë ¿­±â Ä¿¼­ ¼ö¸¦ ÃʰúÇß½À´Ï´Ù
-------------------------------------------------------------------------------

Áï, PreparedStatement¿¡ ´ëÇÑ Cache SizeÀÇ default °¡ 100  À̱⠶§¹®¿¡, ¼­·Î´Ù¸¥
SQL ¹®ÀåÀ» 50°³ ÀÌ»ó PreparedStatement ¸¦ ÅëÇØ ¼öÇàÇÒ °æ¿ì, 100 °³ ÀÌÇÏÀÇ ¸ðµç
PreparedStatement ´Â ½ÇÁ¦ close() µÇÁö ¾Ê°í ij½Ì¿¡ ³²¾Æ ÀÖ°Ô µÇ´Âµ¥, 50°³¸¦
³Ñ´Â ¼ø°£ À§¿Í °°ÀÌ "open cursor exceed" ¿¡·¯¸¦ ¸¸³ª°Ô µÇ´Â °ÍÀÔ´Ï´Ù.

(ÀÌ °°Àº Çö»óÀº Oracle ÀÇ open_cursor ¸¦ 10 Á¤µµ·Î ³·Ãß¾î ³õÀ¸¸é ½±°Ô ÀçÇöÇÒ
¼ö ÀÖ½À´Ï´Ù.)


WebSphere 3.5.x ¿¡¼­ PreparedStatement ¿¡ ´ëÇÑ Ä³½Ã »çÀÌÁî´Â ´ç¿¬È÷ Á¶Á¤ÇÒ ¼ö 
ÀÖ½À´Ï´Ù. À̰ÍÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº $WAS_HOME/properties/ µð·ºÅ丮¿¡ "datasources.xml" 
À̶ó´Â ÆÄÀÏÀ» (Á¸ÀçÇÏÁö ¾ÊÀ¸¸é »õ·Î ¸¸µé°í) ¼öÁ¤ÇØ ÁÜÀ¸·Î °¡´ÉÇÕ´Ï´Ù.

[$WAS_HOME/properties/datasources.xml]
-----------------------------------------------------
<?xml version="1.0"?>
<data-sources>
  <data-source name="DB2_61_APP">
    <attribute name="CURSORHOLD" value="1" />
  </data-source>
  <data-source name="ORA8i_THIN">
    <attribute name="statementCacheSize" value="50" />
  </data-source>
  <data-source name="ORA8i_OCI">
    <attribute name="statementCacheSize" value="200" />
  </data-source>
</data-sources>
-----------------------------------------------------


°³º°ÀûÀ¸·Î À¥½ºÇÇ¾î °ü¸®Äֿܼ¡¼­ Á¤ÀÇÇÑ µ¥ÀÌŸ¼Ò½º À̸§À» °¢°¢ ±â¼úÇϰí, °¢°¢
ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. µû¶ó¼­, µ¥ÀÌŸ ¼Ò½ºÀÇ À̸§À» º¯°æÇÑ °æ¿ì, ÀÌ ÆÄÀÏÀÇ ³»¿ëµµ
ÇÔ²² º¯°æÇØ¾ß µÊÀ» ÁÖÁöÇϽʽÿä.

(¼öÄ¡¸¦ 5Á¤µµ·Î ³·°Ô ÁØ ÈÄ, ¾ÕÀÇ  Å×½ºÆ®JSP¸¦ ´Ù½Ã µ¹·Á º¸½Ê½Ã¿ä. 5°³ ÀÌ»óÀº
ij½ÌµÇÁö ¾ÊÀ» °Ì´Ï´Ù.)


±ÇÀåÇÏ´Â ¹æ¹ýÀº WebSphereÀÇ PreparedStatement ij½Ì±â´ÉÀº µ¶Æ¯Çϸ鼭µµ,±â´ÉÀûÀ¸·Î 
¿ì¼öÇϸç, defualt 100 Àº ´ëºÎºÐÀÇ °æ¿ì ÀûÀýÇÑ ¼öÄ¡ÀÔ´Ï´Ù. ¿ÀÈ÷·Á, Oracle ÀÇ
default "open_cursors=50" À» 200 ÀÌ»óÀ¸·Î ¿Ã¸®½Ç °ÍÀ» ±ÇÇÕ´Ï´Ù.

WebSphere V3 °¢Á¾ Performance Tuning ÀÚ·á¿¡µµ ¾à¹æÀÇ °¨ÃÊó·³ ³ª¿À´Â ¹®±¸·Î¼­,
ij½ÃÀÇ »çÀÌÁî´Â º¸Åë ÇØ´ç ÇÁ·ÎÁ§Æ®¿¡¼­ ÀÚÁÖ »ç¿ëµÇ´Â PreparedStatementÀÇ ¼­·Î´Ù¸¥
SQL ¹®ÀåÀÇ °¹¼ö·Î ¸¶Ãß½Ã¸é µË´Ï´Ù.

NOTE: ij½Ã »çÀÌÁî´Â °¢ Connection º°·Î Àû¿ëµË´Ï´Ù. ¿¹¸¦ µé¾î Connection Pool ¿¡
ÃÑ 2°³ÀÇ DB¿¬°áÀÌ ¹°¸®ÀûÀ¸·Î ¸Î¾îÁ® ÀÖ°í, ±× Áß ÇϳªÀÇ Connection ¿¡ ƯÁ¤ SQL¹®ÀåÀÌ
PrepareStatement ¸¦ ÅëÇØ ij½ÃµÇ¾î ÀÖÀ» Áö¶óµµ, µ¿ÀÏÇÑ SQL¹®ÀåÀÌ ´Ù¸¥ Connection À»
ÅëÇØ ´Ù½Ã ½ÇÇàµÉ ¶§, ±× Connection ¿¡ ´ëÇØ ¶Ç´Ù½Ã ij½ÌÇÏ°Ô µË´Ï´Ù.

NOTE: java.sql.Statement ¸¦ »ç¿ëÇÒ °æ¿ì´Â ij½Ì±â´ÉÀÌ µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù. ¿À·ÎÁö
java.sql.PreparedStatement ¸¸ »ç¿ëÇÒ °æ¿ì¿¡ Àû¿ë¹Þ½À´Ï´Ù.

NOTE: WebSphere 3.0.2.x ¿¡¼­´Â °ü¸®ÄܼÖÀÇ "¸Å°³º¯¼ö"¿¡ ´ÙÀ½°ú °°Àº ¿É¼ÇÀ» ÁöÁ¤Çϸé
µË´Ï´Ù.
-Dcom.ibm.ejs.dbm.PrepStmtCacheSize=200

NOTE: 2001.10.31
 Oracle ÀÇ °æ¿ì, ÇöÀç ¿­·ÁÁø ÃÑ StatementÀÇ °³¼ö¸¦ º¸´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
 -------------------------------------------
 select sid, count(*) cnt from v$open_cursor
 where user_name = 'username' 
 group by sid 
 order by cnt desc
 -------------------------------------------
 (µµ¿òÁֽźÐ: Á¤Çå½Ä, vblove@buttle.co.kr)


NOTE: UDB DB2 ÀÇ °æ¿ì´Â ¸Å¿ì ½ÅÁßÇÏ¼Å¾ß ÇÕ´Ï´Ù. ¸¶Âù°¡Áö·Î PreparedStatement´Â
defaultÀÇ °æ¿ì 100 °³±îÁö´Â ¼­·Î´Ù¸¥ SQL ¹®Àå¿¡ ´ëÇØ¼­ release µÇÁö ¾Ê°í ij½Ì
µË´Ï´Ù.  ±×·¯³ª DB2 ´Â Oracle °ú °°Àº cursor ¼öÄ¡¸¦ Á¦¾îÇÏ´Â °÷ÀÌ ¾ø½À´Ï´Ù.
À¯ÀÏÇÏ°Ô APPLHEAPSZ °ªÀ» ³ô¿© ÁÜÀ¸·Î½á ´õ ¸¹Àº Statement ¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
¸¸¾à, H/W ÀûÀÎ ¸Þ¸ð¸®°¡ ÃæºÐÄ¡ ¾ÊÀº »óȲ¿¡¼­ APPLHEAPSZ ¸¸ ¹«Åδë°í ¿Ã·Á ³õÀ»
°æ¿ì ¼­·Î ´Ù¸¥ ´Ù·®ÀÇ PreparedStatement ¸¦ ¼öÇàÇÒ ¶§, SIGSEGV ¸¦ ¾ß±âÇÒ ¼ö ÀÖÀ¸¸ç
ȤÀº ¾Æ·¡¿Í °°Àº ¿¡·¯¸¦ ¸¸³ª½Ç ¼ö ÀÖ½À´Ï´Ù.

1) CLI0129E  ÇÚµé(handle)ÀÌ ´õÀÌ»ó ¾ø½À´Ï´Ù. SQLSTATE=HY014
2) SQL0954C  ÀÀ¿ëÇÁ·Î±×·¥ Èü(heap)¿¡ ¸í·É¹®À» ó¸®Çϱâ À§ÇØ »ç¿ë °¡´ÉÇÑ ÀúÀ念¿ªÀÌ
   ÃæºÐÇÏÁö ¾Ê½À´Ï´Ù.  SQLSTATE=57011
3) CLI0601E  À¯È¿ÇÏÁö ¾ÊÀº ¸í·É¹® ÇÚµé ¶Ç´Â ¸í·É¹®ÀÌ ´ÝÇû½À´Ï´Ù. SQLSTATE=S1000

±×·¡¼­, DB2ÀÇ APPLHEAPSZ ´Â default 126 ¿¡¼­ 256 À¸·Î ¿Ã¸®µµ·Ï ¼³Ä¡½Ã¿¡ ±ÇÀåÇϰí
ÀÖÀ¸¸ç,¸Þ¸ð¸®°¡ 2GB°¡ ¾ÈµÇ´Â ½Ã½ºÅÛ¿¡¼­´Â ij½Ã»çÀÌÁ 10-50 Á¤µµ·Î ÁÙÀ̽ʽÿä.

±×·¯³ª, À§ ¿¡·¯°¡ ¹ß»ýÇÏ´Â ´ëºÎºÐÀÇ ¿øÀÎÀº (°æÇè»ó) °³¹ßÀÚÀÇ Äڵ忡¼­ Statement
¸¦ Á¦¶§¿¡ close() ÇÏÁö ¾Ê¾ÒÀ» °æ¿ì°¡ ´õ¿í ¸¹¾Ò´Ù´Â Á¡µµ °£°úÇÏ½Ã¸é ¾ÈµË´Ï´Ù.

91   Servlet & JDF & DB2 CLI0129E no more handles 
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=servlet&c=r_p&n=977247084



PS: "CURSORHOLD" ¿¡ ´ëÇÑ ³»¿ëÀº ¾Æ·¡ ±ÛÀ» Âü°í Çϼ¼¿ä.

345   WebSpere V3, DataSource + DB2 6.1(fixpack4) 
http://www.javaservice.net/~java/bbs/read.cgi?m=appserver&b=was&c=r_p&n=990527303

350     Re: Function sequence error 
http://www.javaservice.net/~java/bbs/read.cgi?m=appserver&b=was&c=r_p&n=991154615

----------------
2002.01.21 Ãß°¡
NOTE: The datasources.xml file has been removed in Version 4.0. The functionality
provided through the use of this file is now part of the administrative console.
For example, the statement cache size can now be set  during datasource 
configuration on the administrative console.


-------------------------------------------------------  
  º» ¹®¼­´Â ÀÚÀ¯·Ó°Ô ¹èÆ÷/º¹»ç ÇÒ ¼ö ÀÖÀ¸³ª ¹Ýµå½Ã
  ÀÌ ¹®¼­ÀÇ ÀúÀÚ¿¡ ´ëÇÑ ¾ð±ÞÀ» »èÁ¦ÇÏ½Ã¸é ¾ÈµË´Ï´Ù
================================================
  ÀÚ¹Ù¼­ºñ½º³Ý ÀÌ¿ø¿µ
  E-mail: javaservice@hanmail.net
  PCS:011-898-7904
================================================
  [±Û¸ñ·Ï /½Ã°£¼ø] [´ä±Û¾²±â] [ÇÁ¸°Æ®]