<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://pimg.daum-img.net/whsnake/css/atom.css?ver=1.0" type="text/css"?>
<feed xmlns="http://www.w3.org/2005/Atom" version="1.0" >
  <title>동은네</title>
  <link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa"/>
  <link rel="self" type="application/atom+xml" href="http://blog.daum.net/xml/atom/dongeunpa"/>
  <rights>동은아빠</rights>
  <author>
    <name>동은아빠</name>
    <uri>http://blog.daum.net/dongeunpa</uri>
  </author>
  <generator uri="http://blog.daum.net" version="1.0">Daum blog (blogmaster@daum.net)</generator>
  <id>tag:blog.daum.net,2009:dongeunpa</id>
  <updated>2007-11-23T10:38:40Z</updated>

  		<entry>
	    <title>이거는 원하는 시작일부터 끝일까지 가지고 오는 쿼리.</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/13326512"/>
		<id>tag:blog.daum.net,2009:dongeunpa.13326512</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2007-11-23T10:38:40Z</updated>
	    <published>2007-11-23T10:38:40Z</published>
	    <content type="html">
	    	이거는&amp;nbsp;현재&amp;nbsp;날짜부터&amp;nbsp;한&amp;nbsp;달후&amp;nbsp;날짜&amp;nbsp;구하기.. &lt;BR&gt;&lt;BR&gt;SELECT&amp;nbsp;TO_CHAR(TO_DATE(BB.DAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;+&amp;nbsp;NUM,&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;AS&amp;nbsp;DAY &lt;BR&gt;FROM&amp;nbsp;( &lt;BR&gt;SELECT&amp;nbsp;ROWNUM&amp;nbsp;AS&amp;nbsp;NUM&amp;nbsp; &lt;BR&gt;FROM&amp;nbsp;DICTIONARY&amp;nbsp;A,( &lt;BR&gt;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;B.DAY&amp;nbsp;AS&amp;nbsp;BDAY,&amp;nbsp;C.DAY&amp;nbsp;AS&amp;nbsp;CDAY&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;FROM &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(SYSDATE,'YYYYMM')&amp;nbsp;||&amp;nbsp;'01'&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;B, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(LAST_DAY(SYSDATE),'YYYYMMDD')&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;C &lt;BR&gt;&amp;nbsp;&amp;nbsp;)&amp;nbsp;B &lt;BR&gt;WHERE&amp;nbsp;ROWNUM&amp;nbsp;&lt;=&amp;nbsp;TO_DATE(B.CDAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;-&amp;nbsp;TO_DATE(B.BDAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;AA, &lt;BR&gt;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(SYSDATE&amp;nbsp;-&amp;nbsp;TO_NUMBER(TO_CHAR(SYSDATE,'D'))&amp;nbsp;+&amp;nbsp;1,'YYYYMMDD')&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;BB &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;이거는&amp;nbsp;기본으로&amp;nbsp;현재&amp;nbsp;날짜에서&amp;nbsp;일주일&amp;nbsp;날자.. &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;SELECT&amp;nbsp;TO_CHAR(TO_DATE(BB.DAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;+&amp;nbsp;NUM-1,&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;AS&amp;nbsp;DAY &lt;BR&gt;FROM&amp;nbsp;( &lt;BR&gt;SELECT&amp;nbsp;ROWNUM&amp;nbsp;AS&amp;nbsp;NUM&amp;nbsp; &lt;BR&gt;FROM&amp;nbsp;DICTIONARY&amp;nbsp;A,( &lt;BR&gt;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;B.DAY&amp;nbsp;AS&amp;nbsp;BDAY,&amp;nbsp;C.DAY&amp;nbsp;AS&amp;nbsp;CDAY&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;FROM &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(SYSDATE&amp;nbsp;-&amp;nbsp;TO_NUMBER(TO_CHAR(SYSDATE,'D'))&amp;nbsp;+&amp;nbsp;1,'YYYYMMDD')&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;B, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(SYSDATE&amp;nbsp;-&amp;nbsp;TO_NUMBER(TO_CHAR(SYSDATE,'D'))&amp;nbsp;+&amp;nbsp;7,'YYYYMMDD')&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;C &lt;BR&gt;&amp;nbsp;&amp;nbsp;)&amp;nbsp;B &lt;BR&gt;WHERE&amp;nbsp;ROWNUM&amp;nbsp;&lt;=&amp;nbsp;TO_DATE(B.CDAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;-&amp;nbsp;TO_DATE(B.BDAY,&amp;nbsp;'YYYYMMDD')&amp;nbsp;&amp;nbsp;+&amp;nbsp;1)&amp;nbsp;AA, &lt;BR&gt;(&amp;nbsp;SELECT&amp;nbsp;TO_CHAR(SYSDATE&amp;nbsp;-&amp;nbsp;TO_NUMBER(TO_CHAR(SYSDATE,'D'))&amp;nbsp;+&amp;nbsp;1,'YYYYMMDD')&amp;nbsp;AS&amp;nbsp;DAY&amp;nbsp;FROM&amp;nbsp;DUAL&amp;nbsp;)&amp;nbsp;BB &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;이거는&amp;nbsp;원하는&amp;nbsp;시작일부터&amp;nbsp;끝일까지&amp;nbsp;가지고&amp;nbsp;오는&amp;nbsp;쿼리입니다. &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;SELECT&amp;nbsp;TO_CHAR(TO_DATE('[SDATE]',&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;+&amp;nbsp;NUM-1,&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;AS&amp;nbsp;DAY &lt;BR&gt;FROM&amp;nbsp;( &lt;BR&gt;&amp;nbsp;SELECT&amp;nbsp;ROWNUM&amp;nbsp;NUM&amp;nbsp; &lt;BR&gt;&amp;nbsp;FROM&amp;nbsp;DICTIONARY &lt;BR&gt;&amp;nbsp;WHERE&amp;nbsp;ROWNUM&amp;nbsp;&lt;=&amp;nbsp;TO_DATE('[EDATE]',&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;-&amp;nbsp;TO_DATE('[SDATE]',&amp;nbsp;'YYYY-MM-DD')&amp;nbsp;&amp;nbsp;+&amp;nbsp;1 &lt;BR&gt;) &lt;BR&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;&lt;BR&gt;[SDATE]&amp;nbsp;는&amp;nbsp;시작일..&amp;nbsp;[EDATE]는&amp;nbsp;종료일입니다. &lt;BR&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>특정 디렉토리의 파일목록을 읽어 모두 지우는 쉘</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/9422821"/>
		<id>tag:blog.daum.net,2009:dongeunpa.9422821</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-08-10T14:14:19Z</updated>
	    <published>2006-08-10T14:14:19Z</published>
	    <content type="html">
	    	psnm=`ls /epdata/apr/edms/attach/store`&lt;BR&gt;for pnm in 
$psnm&lt;BR&gt;do&lt;BR&gt;&amp;nbsp;&amp;nbsp;rm $pnm&lt;BR&gt;done
	    </content>
	    	</entry>
    	<entry>
	    <title>UNIX Shell 실행시키기</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/8872245"/>
		<id>tag:blog.daum.net,2009:dongeunpa.8872245</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-06-20T16:19:07Z</updated>
	    <published>2006-06-20T16:19:07Z</published>
	    <content type="html">
	    	
&lt;P&gt;package com.lge.apr.apf.dao; &lt;/P&gt;
&lt;P&gt;import com.lge.apr.apf.vo.APFApproveApproverVO1;&lt;BR&gt;import 
com.lge.apr.apf.vo.APFApproveEdmsVO;&lt;BR&gt;import 
com.lge.apr.apf.vo.APFApproveExamVO;&lt;BR&gt;import 
com.lge.apr.apf.vo.APFApproveInfoVO;&lt;BR&gt;import 
com.lge.apr.common.AprUtil;&lt;BR&gt;import 
com.lge.apr.common.FormException;&lt;BR&gt;import 
com.lge.apr.common.config.APRConfig;&lt;BR&gt;import 
com.lge.apr.common.config.APRMessage;&lt;BR&gt;import 
com.lge.apr.common.sql.BeanPropertySetter;&lt;BR&gt;import 
com.lge.global.ASSERT;&lt;BR&gt;import com.lge.global.dao.AbstractCommonDAO;&lt;BR&gt;import 
com.lge.global.sql.ConnectionManager;&lt;BR&gt;import 
java.io.BufferedInputStream;&lt;BR&gt;import java.io.BufferedOutputStream;&lt;BR&gt;import 
java.io.BufferedReader;&lt;BR&gt;import java.io.File;&lt;BR&gt;import 
java.io.FileInputStream;&lt;BR&gt;import java.io.FileOutputStream;&lt;BR&gt;import 
java.io.FileReader;&lt;BR&gt;import java.io.IOException;&lt;BR&gt;import 
java.io.InputStream;&lt;BR&gt;import java.io.InputStreamReader;&lt;BR&gt;import 
java.sql.Connection;&lt;BR&gt;import java.sql.PreparedStatement;&lt;BR&gt;import 
java.sql.ResultSet;&lt;BR&gt;import java.sql.SQLException;&lt;BR&gt;import 
java.util.ArrayList;&lt;BR&gt;import java.util.HashMap;&lt;BR&gt;import 
javax.sql.RowSet;&lt;BR&gt;import weblogic.utils.StringUtils;&lt;/P&gt;
&lt;P&gt;public class APFHtmltoEdmsDAO extends AbstractCommonDAO&lt;BR&gt;{ 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFHtmltoEdmsDAO() 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
APFHtmltoEdmsDAO(Connection conn) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(conn);&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setDatasourceName 
(APRConfig.getInstance().get(&quot;apr.datasource&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFHtmltoEdmsDAO(String 
dataSource) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
super(dataSource);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFHtmltoEdmsDAO(Connection conn, String 
approve_seq, String langType, String flag, String namo_contents) throws 
Exception {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
super(conn);&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
setDatasourceName 
(APRConfig.getInstance().get(&quot;apr.datasource&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
param = new Object[]{approve_seq};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//forward mail&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( 
flag.equals(&quot;FORWARD&quot;)) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_content = readFile( FORWARD_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_content read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else { //결재완료, emds 
inf&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_content = readFile( APPROVAL_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_content read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_attach_inf = readFile( ATTACH_MAIL_INF 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attach_inf read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_edms_attach_inf = readFile( ATTACH_EDMS_MAIL_INF 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_edms_attach_inf read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this.namo_contents = 
AprUtil.setMimeAprMailValue(namo_contents, 
&quot;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.langType = 
langType;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_attribute = readFile( 
APPROVE_ATTRIBUTE );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attribute read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_approval = 
readFile( APPROVAL_LINE_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_approval read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_attach = readFile( 
ATTACH_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attach read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_edms_attach = 
readFile( ATTACH_EDMS_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_edms_attach read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ainfo = selectApproveInfo( 
langType, param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;ainfo read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edmsvo = 
selectApproveEdms( param );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
aApprover = selectApproverList(langType,&amp;nbsp; 
param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;aApprover 
read.... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFHtmltoEdmsDAO(Connection conn, String 
approve_seq, String request_no, String langType, String flag, String 
namo_contents, String status) throws Exception 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(conn);&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setDatasourceName 
(APRConfig.getInstance().get(&quot;apr.datasource&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
param = new Object[]{approve_seq};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//forward mail&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( 
flag.equals(&quot;FORWARD&quot;)) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_content = readFile( FORWARD_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_content read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else if ( 
flag.equals(&quot;CHECK&quot;) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_content = readFile( CHECK_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_content read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else { //결재완료, emds 
inf&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_content = readFile( APPROVAL_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_content read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_attach_inf = readFile( ATTACH_MAIL_INF 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attach_inf read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_edms_attach_inf = readFile( ATTACH_EDMS_MAIL_INF 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_edms_attach_inf read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this.namo_contents = 
AprUtil.setMimeAprMailValue(namo_contents, 
&quot;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.langType = 
langType;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_attribute = readFile( 
APPROVE_ATTRIBUTE );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attribute read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_approval = 
readFile( APPROVAL_LINE_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_approval read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_attach = readFile( 
ATTACH_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_attach read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mail_edms_attach = 
readFile( ATTACH_EDMS_MAIL );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_edms_attach read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ainfo = selectApproveInfo( 
langType, param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;ainfo read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edmsvo = 
selectApproveEdms( param );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
aApprover = selectApproverList(langType,&amp;nbsp; 
param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;aApprover 
read.... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( status.equals(&quot;check&quot;) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aChecker 
= selectApproveExamList(approve_seq, request_no, 
langType);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;checker read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_check = readFile( CHECK_LINE_MAIL 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;mail_check read.... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Object param[] = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //forward mail &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
mail_content = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 결재완료/edms 
inf&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String[] mail_content_edms = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //결재 
ATTRIBUTES&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String mail_attribute = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //결재선&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
mail_approval = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Check line&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public String mail_check = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // local 
file&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String mail_attach = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // edms file&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
mail_edms_attach = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
String mail_attach_inf = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
mail_edms_attach_inf = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
APFApproveInfoVO ainfo = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveEdmsVO 
edmsvo = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveApproverVO1[] aApprover = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveExamVO[] aChecker = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String namo_contents = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String langType = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String inf_seq_id=null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String edmsBuf = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public String mailBuf = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String FORWARD_MAIL = 
&quot;forward_mail.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String CHECK_MAIL 
= &quot;check_mail.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String 
APPROVAL_MAIL = &quot;approval_mail.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final 
String APPROVE_ATTRIBUTE = &quot;approval_attributes.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String APPROVAL_LINE_MAIL = 
&quot;approval_line.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String 
CHECK_LINE_MAIL = &quot;check_line.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String ATTACH_MAIL = 
&quot;attach_file.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String 
ATTACH_EDMS_MAIL = &quot;attach_edms_file.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static 
final String ATTACH_MAIL_INF = &quot;attach_file_inf.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String ATTACH_EDMS_MAIL_INF = 
&quot;attach_edms_file_inf.htm&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String PATH = 
APRConfig.getInstance().get(&quot;apf.mail.path&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private 
static final String PATH_IMG = 
APRConfig.getInstance().get(&quot;apf.mail.path&quot;)+&quot;/images/&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public static final String STORE = 
APRConfig.getInstance().get(&quot;apf.namo.edmsdir&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
static final String STOREDIR = &quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final 
String PATH_EDMS = 
APRConfig.getInstance().get(&quot;apf.edms.upload&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // edms 
interface 나모 이미지 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String ROOT_DIR = 
APRConfig.getInstance().get(&quot;apf.edmsinf.url&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String TOT_PORT_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.port.tot_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String F_PORT_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.port.f_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String S_PORT_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.port.s_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final String TOT_LAND_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.land.tot_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String F_LAND_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.land.f_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
private static final String S_LAND_WIDTH = 
APRConfig.getInstance().get(&quot;apf.namo.land.s_width&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //메일 본문..&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
setContents() throws FormException &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String content = 
mail_content;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = replace( 
content, &quot;${PATH}&quot;, PATH );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;setContents PATH&quot; + 
PATH);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = replace( content, 
&quot;${CREATE_DATE}&quot;, ainfo.getCreate_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = replace( content, 
&quot;${REQUEST_USER}&quot;, ainfo.getRequest_name()+&quot; ( &quot;+ainfo.getRequest_dept_name()+&quot; 
/ &quot;+ ainfo.getRequest_jikwi_name() + &quot; , &quot; + ainfo.getRequest_tel_no() + &quot; ) &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = replace( content, 
&quot;${APPROVE_TITLE}&quot;, ainfo.getApprove_title() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content = replace( content, 
&quot;${APPROVE_CONTENTS}&quot;, ainfo.getApprove_contents() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //content = replace( content, 
&quot;${APPROVE_CONTENTS}&quot;, namo_contents 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( (content.indexOf(&quot;src&quot;)!=-1 
|| content.indexOf(&quot;SRC&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
content.indexOf(&quot;jpg&quot;)!=-1 || content.indexOf(&quot;JPG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
content.indexOf(&quot;jpeg&quot;)!=-1 || content.indexOf(&quot;JPEG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
content.indexOf(&quot;GIF&quot;)!=-1 || content.indexOf(&quot;gif&quot;)!=-1 ) 
&amp;&amp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
(content.indexOf(&quot;img&quot;)!=-1 || content.indexOf(&quot;IMG&quot;)!=-1 ) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${TOT_WIDTH}&quot;, TOT_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${F_WIDTH}&quot;, F_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${S_WIDTH}&quot;, S_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${TOT_WIDTH}&quot;, TOT_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${F_WIDTH}&quot;, F_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; content 
= replace( content, &quot;${S_WIDTH}&quot;, S_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setContents process 
.... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
content;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//결재완료멜/edms inf 본문.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String[] setContentsEdms() 
throws FormException &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String mail = 
setContents();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String edms = 
mail_content;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( 
edms, &quot;${PATH}&quot;, PATH_IMG );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms 
= replace( edms, &quot;${CREATE_DATE}&quot;, ainfo.getCreate_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${REQUEST_USER}&quot;, ainfo.getRequest_name()+&quot; ( &quot;+ainfo.getRequest_dept_name()+&quot; 
/ &quot;+ ainfo.getRequest_jikwi_name() + &quot; , &quot; + ainfo.getRequest_tel_no() + &quot; ) &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${APPROVE_TITLE}&quot;, ainfo.getApprove_title() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${APPROVE_CONTENTS}&quot;, AprUtil.setParsingNamoUrl(ainfo.getApprove_contents(), 
&quot;&quot;, STOREDIR) );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //edms = replace( 
edms, &quot;${APPROVE_CONTENTS}&quot;, AprUtil.setParsingNamoUrl(namo_contents, &quot;&quot;, 
STOREDIR) );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( 
(edms.indexOf(&quot;src&quot;)!=-1 || edms.indexOf(&quot;SRC&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;jpg&quot;)!=-1 || edms.indexOf(&quot;JPG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;jpeg&quot;)!=-1 || edms.indexOf(&quot;JPEG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;GIF&quot;)!=-1 || edms.indexOf(&quot;gif&quot;)!=-1 ) 
&amp;&amp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
(edms.indexOf(&quot;img&quot;)!=-1 || edms.indexOf(&quot;IMG&quot;)!=-1 ) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${TOT_WIDTH}&quot;, TOT_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${F_WIDTH}&quot;, F_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${S_WIDTH}&quot;, S_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${TOT_WIDTH}&quot;, TOT_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${F_WIDTH}&quot;, F_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${S_WIDTH}&quot;, S_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ${TOT_WIDTH}&amp;nbsp; ${F_WIDTH} 
${S_WIDTH}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;setContentsEdms process .... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new String[]{mail, 
edms};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//결재완료멜/edms inf 본문.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String setContentsEdmsOnly() 
throws FormException &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String edms = 
mail_content;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( 
edms, &quot;${PATH}&quot;, PATH_IMG );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms 
= replace( edms, &quot;${CREATE_DATE}&quot;, ainfo.getCreate_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${REQUEST_USER}&quot;, ainfo.getRequest_name()+&quot; ( &quot;+ainfo.getRequest_dept_name()+&quot; 
/ &quot;+ ainfo.getRequest_jikwi_name() + &quot; , &quot; + ainfo.getRequest_tel_no() + &quot; ) &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${APPROVE_TITLE}&quot;, ainfo.getApprove_title() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = replace( edms, 
&quot;${APPROVE_CONTENTS}&quot;, AprUtil.setParsingNamoUrl(ainfo.getApprove_contents(), 
&quot;&quot;, STOREDIR) );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //edms = replace( 
edms, &quot;${APPROVE_CONTENTS}&quot;, AprUtil.setParsingNamoUrl(namo_contents, &quot;&quot;, 
STOREDIR) );&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( (edms.indexOf(&quot;src&quot;)!=-1 || 
edms.indexOf(&quot;SRC&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;jpg&quot;)!=-1 || edms.indexOf(&quot;JPG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;jpeg&quot;)!=-1 || edms.indexOf(&quot;JPEG&quot;)!=-1&amp;nbsp; 
||&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms.indexOf(&quot;GIF&quot;)!=-1 || edms.indexOf(&quot;gif&quot;)!=-1 ) 
&amp;&amp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
(edms.indexOf(&quot;img&quot;)!=-1 || edms.indexOf(&quot;IMG&quot;)!=-1 ) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${TOT_WIDTH}&quot;, TOT_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${F_WIDTH}&quot;, F_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${S_WIDTH}&quot;, S_LAND_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${TOT_WIDTH}&quot;, TOT_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${F_WIDTH}&quot;, F_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; edms = 
replace( edms, &quot;${S_WIDTH}&quot;, S_PORT_WIDTH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setContentsEdmsOnly 
process .... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
edms;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public String setEdmsAttri() throws FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String att = 
mail_attribute;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${BIZ_MAP_DIS}&quot;, edmsvo.getBiz_map_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${TEAM_MAP_DIS}&quot;, edmsvo.getTeam_map_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${COMPANY_PERMISSION_DIS}&quot;, edmsvo.getCompany_permission_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${RETENTION_DIS}&quot;, edmsvo.getRetention_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${DOC_TYPE_DIS}&quot;, edmsvo.getDoc_type_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${INFO_TYPE_DIS}&quot;, edmsvo.getInfo_type_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${SEC_LEVEL_DIS}&quot;, edmsvo.getSec_level_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; att = replace( att, 
&quot;${DOC_LANG_DIS}&quot;, edmsvo.getDoc_lang_dis() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setEdmsAttri 
process .... success&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return att;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String setChecker() throws 
FormException {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer 
multi_mail_check = new 
StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String mail_copy = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( aChecker != null ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( 
int i = 0; i &lt; aChecker.length; i++ ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = 
mail_check;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
APFApproveExamVO ocheck = 
aChecker[i];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${CHECK_OPEN}&quot;, ocheck.getIs_open() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${CHECK_STATUS}&quot;, ocheck.getRequest_status() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${CHECK_DATE}&quot;, ocheck.getRequest_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${CHECK_USER}&quot;, ocheck.getRequest_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${CHECK_COMMENT}&quot;, ocheck.getRequest_contents() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${EXAM_STATUS}&quot;, ocheck.getExam_status() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${EXAM_DATE}&quot;, ocheck.getExam_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${EXAM_USER}&quot;, ocheck.getExam_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${EXAM_COMMENT}&quot;, ocheck.getExam_contents() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${PATH}&quot;, PATH_IMG 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_check.append( 
mail_copy);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;setChecker process .... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
multi_mail_check.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String setApproval() throws FormException 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer multi_mail_aproval 
= new StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String 
mail_copy = &quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int 
i=0;i&lt;aApprover.length;i++) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = 
mail_approval;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
APFApproveApproverVO1 oappr = 
aApprover[i];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${APPROVE_CALSS}&quot;, 
oappr.getApprove_class_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${APPROVE_STATUS}&quot;, 
oappr.getApprover_status_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${APPROVE_DATE}&quot;, oappr.getApprove_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${APPROVER_USER}&quot;, oappr.getApprover_name()+&quot; ( 
&quot;+oappr.getApprover_dept_name()+&quot; / &quot;+oappr.getApprover_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if(oappr.getDelegate_name().length() != 0 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${DELEGATE_STATUS}&quot;, &quot;&lt;span 
class=\&quot;instruction_b\&quot;&gt;(Delegation &quot; +oappr.getApprover_status_name() + &quot; 
)&lt;/span&gt;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${DELEGATE_USER}&quot;, oappr.getDelegate_name()+&quot; ( 
&quot;+oappr.getDelegate_dept_name()+&quot; / &quot;+oappr.getDelegate_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${DELEGATE_STATUS}&quot;, 
&quot;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${DELEGATE_USER}&quot;, &quot;&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${PATH}&quot;, PATH_IMG 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail_copy = replace( mail_copy, &quot;${APPROVE_COMMENT}&quot;, oappr.getApprove_comment() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_aproval.append( 
mail_copy);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setApproval process 
.... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
multi_mail_aproval.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String[] setApprovalEdms() throws FormException 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String mail = 
setApproval();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer 
multi_edms = new StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
String emds = &quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int 
i=0;i&lt;aApprover.length;i++) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
mail_approval;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
APFApproveApproverVO1 oappr = 
aApprover[i];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${APPROVE_CALSS}&quot;, oappr.getApprove_class_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVE_STATUS}&quot;, oappr.getApprover_status_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVE_DATE}&quot;, oappr.getApprove_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVER_USER}&quot;, oappr.getApprover_name()+&quot; ( 
&quot;+oappr.getApprover_dept_name()+&quot; / &quot;+oappr.getApprover_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if(oappr.getDelegate_name().length() != 0 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_STATUS}&quot;, &quot;&lt;span 
class=\&quot;instruction_b\&quot;&gt;(Delegation &quot; +oappr.getApprover_status_name() + &quot; 
)&lt;/span&gt;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_USER}&quot;, oappr.getDelegate_name()+&quot; ( 
&quot;+oappr.getDelegate_dept_name()+&quot; / &quot;+oappr.getDelegate_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_STATUS}&quot;, 
&quot;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_USER}&quot;, &quot;&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
AprUtil.setParsingNamoUrl(replace( emds, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//AprUtil.setParsingNamoUrl(ainfo.getApprove_contents(), &quot;&quot;, 
STOREDIR)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${APPROVE_COMMENT}&quot;, oappr.getApprove_comment() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_edms.append( emds);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setApprovalEdms 
process .... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new 
String[]{mail, multi_edms.toString()};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
setApprovalEdmsOnly() throws FormException 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer multi_edms = new 
StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String emds = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int 
i=0;i&lt;aApprover.length;i++) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
mail_approval;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
APFApproveApproverVO1 oappr = 
aApprover[i];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${APPROVE_CALSS}&quot;, oappr.getApprove_class_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVE_STATUS}&quot;, oappr.getApprover_status_name() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVE_DATE}&quot;, oappr.getApprove_date() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; emds = 
replace( emds, &quot;${APPROVER_USER}&quot;, oappr.getApprover_name()+&quot; ( 
&quot;+oappr.getApprover_dept_name()+&quot; / &quot;+oappr.getApprover_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if(oappr.getDelegate_name().length() != 0 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_STATUS}&quot;, &quot;&lt;span 
class=\&quot;instruction_b\&quot;&gt;(Delegation &quot; +oappr.getApprover_status_name() + &quot; 
)&lt;/span&gt;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_USER}&quot;, oappr.getDelegate_name()+&quot; ( 
&quot;+oappr.getDelegate_dept_name()+&quot; / &quot;+oappr.getDelegate_jikwi_name() + &quot; )&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_STATUS}&quot;, 
&quot;&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${DELEGATE_USER}&quot;, &quot;&quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //emds = 
replace(replace( emds, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = AprUtil.setParsingNamoUrl(replace( emds, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
emds = replace( emds, &quot;${APPROVE_COMMENT}&quot;, oappr.getApprove_comment() 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_edms.append( emds);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;setApprovalEdmsOnly process .... 
success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
multi_edms.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String setReferer() throws 
FormException &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet rs = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String refer = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs = 
selectReceiver( param, 
AprUtil.ckNull(langType,&quot;KOR&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( 
rs.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
refer += rs.getString(&quot;NAME&quot;) + 
&quot;&lt;br&gt;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ConnectionManager.release(rs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
refer;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * mail send 
file/edms&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
setFile(int flag ) throws FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer multi_mail_attach = 
new StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String mail = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet rs = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( flag 
== 1 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = 
selectFile(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = 
mail_attach;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${PATH}&quot;, PATH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NEW_FILE_NAME}&quot;, 
rs.getString(&quot;NEW_FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_SIZE}&quot;, 
rs.getString(&quot;FILE_SIZE&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_attach.append(mail 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = selectEdmsFile( 
param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = 
mail_edms_attach;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${PATH}&quot;, PATH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${EDMS_URL}&quot;, 
rs.getString(&quot;EDMS_URL&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_attach.append(mail 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ConnectionManager.release(rs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setFile process 
.... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
multi_mail_attach.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
*&amp;nbsp; 결재완료멜/edms inf&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public String[] setFileEdms(int flag ) throws 
FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer multi_file_attach = 
new StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer 
multi_mail_attach = new 
StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String mail = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String edms = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet rs = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( flag 
== 1 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = 
selectFile(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = 
mail_attach;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${PATH}&quot;, PATH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NEW_FILE_NAME}&quot;, 
rs.getString(&quot;NEW_FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_SIZE}&quot;, 
rs.getString(&quot;FILE_SIZE&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_attach.append(mail 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = 
mail_attach_inf;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = AprUtil.setParsingNamoUrl(replace( edms, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_file_attach.append(edms 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = selectEdmsFile( 
param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = 
mail_edms_attach;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${PATH}&quot;, PATH 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
mail = replace( mail, &quot;${EDMS_URL}&quot;, 
rs.getString(&quot;EDMS_URL&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_mail_attach.append(mail 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = 
mail_edms_attach_inf;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = AprUtil.setParsingNamoUrl(replace( edms, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_file_attach.append(edms 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ConnectionManager.release(rs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setFileEdms 
process .... success&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new 
String[]{multi_mail_attach.toString(), 
multi_file_attach.toString()};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; 결재완료멜/edms 
inf&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String 
setFileEdmsOnly(int flag ) throws FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer multi_file_attach = 
new StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String edms = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet rs = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( flag 
== 1 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = 
selectFile(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = 
mail_attach_inf;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//edms = replace( edms, &quot;${PATH}&quot;, STOREDIR 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//edms = replace(replace( edms, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = AprUtil.setParsingNamoUrl(replace( edms, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_file_attach.append(edms 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
rs = selectEdmsFile( 
param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while( rs.next()) 
{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = 
mail_edms_attach_inf;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = AprUtil.setParsingNamoUrl(replace( edms, &quot;${PATH}&quot;, PATH_IMG ), &quot;&quot;, 
STOREDIR);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${FILE_NAME}&quot;, 
rs.getString(&quot;FILE_NAME&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
edms = replace( edms, &quot;${NO}&quot;, 
rs.getString(&quot;ROWNUM&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
multi_file_attach.append(edms 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ConnectionManager.release(rs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AprUtil.lLog(&quot;setFileEdmsOnly 
process .... 
success&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
multi_file_attach.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String replace( String str, String target, String 
value ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
StringUtils.replaceGlobal( str, target, AprUtil.ckNull(value) 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveExamVO[] selectApproveExamList(String 
approve_seq, String request_no, String encodeType) throws FormException 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveExamVO[] result = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HashMap typeMap = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArrayList aList = new 
ArrayList();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveExamDAO dao = new 
APFApproveExamDAO(getDatasource());&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object[] param = new Object[] { 
approve_seq, request_no, approve_seq, request_no 
};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RowSet rset = 
dao.getApproveExamListForResponse(param, encodeType);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveExamVO oExam = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while 
(rset.next()) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (typeMap == null) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
typeMap = BeanPropertySetter.getTypeMap(rset);&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
oExam = new 
APFApproveExamVO();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
BeanPropertySetter.setProperties(rset, oExam, true, true, 
typeMap);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
aList.add(oExam); 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (SQLException sqle) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
new 
FormException(APRMessage.getInstance().get(&quot;MESSAGE.ERROR.90004&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
} finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
ConnectionManager.release(rset);&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = new 
APFApproveExamVO[aList.size()];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
aList.toArray(result);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
result;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveInfoVO selectApproveInfo(String langType, 
Object[] param) throws FormException 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveInfoDAO dao = new 
APFApproveInfoDAO(getDatasource());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
APFApproveInfoVO ainfo = dao.selectApproveInfoMail( param, 
AprUtil.ckNull(langType,&quot;KOR&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
return ainfo;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public APFApproveApproverVO1[] selectApproverList(String 
langType, Object[] param) throws FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveApproverVO1[] 
aApprover = new APFApproveApproverDAO(getDatasource()).selectApproverList(param, 
AprUtil.ckNull(langType,&quot;KOR&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
return aApprover;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public RowSet selectFile(Object[] param) throws 
FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveFileDAO dao = new 
APFApproveFileDAO(getDatasource());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
RowSet rset = 
dao.selectFile(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
rset;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
/**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * edms 첨부파일 목록가져오기&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
*/&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public RowSet selectEdmsFile(Object[] param) throws 
FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; APFApproveFileDAO dao = new 
APFApproveFileDAO(getDatasource());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
RowSet rset = 
dao.selectEdmsFile(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
rset;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
/**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * edms attributes 
,검색.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
APFApproveEdmsVO selectApproveEdms( Object[] param) throws FormException 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
new 
APFApproveEdmsDAO(getDatasource()).selectApproveEdms(param);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
RowSet selectReceiver(Object[] param, String langType) throws 
FormException&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new 
APFApproveReceiverDAO(getDatasource()).selectReceiver(param, 
langType);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
public String readFile(String fileName) throws Exception &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuffer buffer = new 
StringBuffer();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedReader br = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; br = new 
BufferedReader(new FileReader(new File( 
APRConfig.getInstance().get(&quot;apf.mail.approval&quot;) , 
fileName)));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while 
(true) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
String line = 
br.readLine();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (line == null) 
break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
buffer.append(line).append(&quot;\n&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
e;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (br 
!= null) try { br.close(); } catch (Exception x) 
{}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 
buffer.toString();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * html파일 
생성...&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void 
createFile(String edms_content, String inf_seq_id, String where ) throws 
Exception {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; java.io.FileWriter fw 
= null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( 
where.equals(&quot;landscape&quot;) ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;MAKE HTML &quot;+ StringUtils.replaceGlobal( STORE, &quot;mhtml_portrait&quot;, 
&quot;land_html&quot;) + 
inf_seq_id+&quot;.htm&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
fw = new java.io.FileWriter(StringUtils.replaceGlobal( STORE, &quot;mhtml_portrait&quot;, 
&quot;land_html&quot;) + 
inf_seq_id+&quot;.htm&quot;,true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;MAKE HTML &quot;+ StringUtils.replaceGlobal( STORE, &quot;mhtml_portrait&quot;, 
&quot;port_html&quot;) + 
inf_seq_id+&quot;.htm&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
fw = new java.io.FileWriter(StringUtils.replaceGlobal( STORE, &quot;mhtml_portrait&quot;, 
&quot;port_html&quot;) + 
inf_seq_id+&quot;.htm&quot;,true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] c 
= 
edms_content.toCharArray();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
int idx = 
0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
fw.write(c, 0, 
c.length);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
fw.flush();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException e1) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
e1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (fw != null) fw.close();&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch 
(IOException e2) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e2.printStackTrace();&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 
/var/mqm/EAI/CRON/PORTAL_EP_EDMSATTACH_FB.sh {파일명}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public 
static final String&amp;nbsp; PORTAL_EP_EDMSATTACH_FB = 
APRConfig.getInstance().get(&quot;apf.edms.int.attach&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
///epdata/apr/edms/mhtml_portrait 전송시&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final 
String&amp;nbsp; PORTAL_EP_EDMSMHTMLPORT_FB = 
APRConfig.getInstance().get(&quot;apf.edms.int.portrait&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
///epdata/apr/edms/mhtml_landscape 전송시&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final 
String&amp;nbsp; PORTAL_EP_EDMSMHTMLLAND_FB = 
APRConfig.getInstance().get(&quot;apf.edms.int.landscape&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static final String&amp;nbsp; PORTAL_EP_TEST_ATTACH = 
&quot;sh /epdata/apr/edms/attach/TEST_ATTACH.sh&amp;nbsp; 
{FILE_NAME}&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void callScript(String cmd, int flag) throws 
Exception &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//Process pro = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String 
command = &quot;&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 
Attach 전송&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if( flag == 1 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;Attach mq transfer ..... &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
command = replace( PORTAL_EP_EDMSATTACH_FB, &quot;{FILE_NAME}&quot;, 
cmd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//pro = 
Runtime.getRuntime().exec(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
execCommand(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 
portrait&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
else if ( flag == 2 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;edms attributes portrait mq transfer ..... &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
command = replace( PORTAL_EP_EDMSMHTMLPORT_FB, &quot;{FILE_NAME}&quot;, 
cmd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//pro = 
Runtime.getRuntime().exec(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
execCommand(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//langscape&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
else if( flag == 3 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;edms attributes landscape mq transfer ..... &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
command = replace( PORTAL_EP_EDMSMHTMLLAND_FB, &quot;{FILE_NAME}&quot;, 
cmd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//pro = 
Runtime.getRuntime().exec(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
execCommand(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if( 
flag == 4 ) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;edms attributes test attach mq transfer ..... &quot; 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
command = replace( PORTAL_EP_TEST_ATTACH, &quot;{FILE_NAME}&quot;, 
cmd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//pro = 
Runtime.getRuntime().exec(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
execCommand(command);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
e;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void execCommand (String 
command) throws Exception&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
try {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;String line;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Process p = 
Runtime.getRuntime().exec(command);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;BufferedReader 
input = new BufferedReader(new 
InputStreamReader(p.getInputStream()));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.waitFor();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while 
((line = input.readLine()) != null) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AprUtil.lLog(line);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;input.close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;call command success....&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;} catch (Exception err) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
err;&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String args[]) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process pro = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pro = 
Runtime.getRuntime().exec(&quot;notepad.exe&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
/**&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * edms 첨부파일 
interface&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void 
moveEdmsInfFile ( ArrayList al ) throws Exception&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputStream f = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String new_file_name = 
null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if(al!=null&amp;&amp;al.size()&gt;0) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;EDMS LOCAL FILE INTERFACE 
START&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
for(int i=0;i&lt;al.size();i++) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
HashMap hm = 
(HashMap)al.get(i);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
f = new FileInputStream( 
(File)hm.get(&quot;FILE&quot;));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
new_file_name = new String( ((String)hm.get(&quot;NEW_FILE_NAME&quot;)).getBytes(&quot;UTF-8&quot;), 
&quot;ISO-8859-1&quot;);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
createFile( f , new_file_name 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//callScript( new_file_name, 1 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
AprUtil.lLog(&quot;ATTACH FILE WRITE NAME[&quot;+(i+1)+&quot;] : &quot; + new_file_name 
);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//AprUtil.lLog(&quot;EDMS LOCAL FILE INTERFACE 
END&quot;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(Exception e) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw 
e;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
//e.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private 
void createFile(InputStream in, String newFileName) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BufferedInputStream 
bin&amp;nbsp;&amp;nbsp; = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
BufferedOutputStream bout = null;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] b = new 
byte[1024];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int idx = 
0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bin = 
new 
BufferedInputStream(in);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
bout = new BufferedOutputStream(new FileOutputStream(PATH_EDMS + 
newFileName));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //파일에 
write&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
while ((idx=bin.read(b, 0, b.length)) != -1) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
bout.write(b, 0, 
idx);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (IOException e1) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e1.printStackTrace();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (bin != null) 
bin.close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (bout != null) bout.close();&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch 
(IOException e2) 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
e2.printStackTrace();&amp;nbsp;&amp;nbsp; 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;} 
&lt;BR&gt;&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>Scripting Iframes - Tutorial and Examples</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6606536"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6606536</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-26T11:18:29Z</updated>
	    <published>2006-01-26T11:18:29Z</published>
	    <content type="html">
	    	
&lt;H1&gt;Scripting Iframes - Tutorial and Examples&lt;/H1&gt;
&lt;P&gt;Iframes, or inline frames, allow you to load html files into an existing 
document. Internet Explorer 4+, Netscape 6+, Firefox, Mozilla, Opera and other 
modern browsers all support iframes.&lt;/P&gt;
&lt;P&gt;New html documents can be loaded into the iframe without disrupting the rest 
of the document. CSS and JavaScript can be used to manipulate properties of the 
iframe, such as its position and size. JavaScript can also be used to 
communicate between the document containing the iframe and the document loaded 
inside it.&lt;/P&gt;
&lt;H2 class=listHd&gt;Examples&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/fluid.html&quot;&gt;&lt;U&gt;Centered fluid 
iframe&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/height.html&quot;&gt;Setting iframe 
height&lt;/A&gt; to height of document inside 
&lt;LI&gt;Scrolling iframes, &lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/scroll-v.html&quot;&gt;vertically&lt;/A&gt; and &lt;A 
title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/scroll-h.html&quot;&gt;horizontally&lt;/A&gt; 
&lt;LI&gt;&lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/forms.html&quot;&gt;Communicating between 
documents&lt;/A&gt; 
&lt;LI&gt;Using an iframe as a &lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/buffer.html&quot;&gt;&lt;U&gt;buffer&lt;/U&gt;&lt;/A&gt; 
&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Use your browser's menu commands to view source and save the example 
documents. You can right-click on an iframe to access the source code of the 
document contained inside it.&lt;/P&gt;
&lt;P&gt;Please read dyn-web's &lt;A href=&quot;http://www.dyn-web.com/bus/terms.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Terms of Use&lt;/U&gt;&lt;/A&gt; if you plan 
to use our code.&lt;/P&gt;
&lt;H2&gt;&lt;A name=basics&gt;&lt;/A&gt;Iframe Basics and Tidbits&lt;/H2&gt;
&lt;P&gt;See &lt;A title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/basics.html&quot;&gt;&lt;U&gt;this example&lt;/U&gt;&lt;/A&gt; 
for basic information about iframes if you are unfamiliar with the element and 
its attributes.&lt;/P&gt;
&lt;P&gt;Iframes can be placed anywhere in the document flow. Styles can be attached 
to them and they can be positioned, relative or absolute.&lt;/P&gt;
&lt;P&gt;The document loaded into the iframe does not inherit styles from the 
containing document. Styles to be applied to iframe content need to be included 
in that document in the usual ways, i.e., linked, embedded, imported, etc.&lt;/P&gt;
&lt;P&gt;Some browsers support an iframe onload attribute (e.g., IE6, Mozilla). 
Internet Explorer has a &lt;CODE&gt;&lt;FONT face=굴림체&gt;document.readyState&lt;/FONT&gt;&lt;/CODE&gt; 
property that can be queried using a timer to detect when the document inside 
the iframe has finished loading. However, for best cross-browser support, if you 
want something to happen once the document has finished loading into the iframe, 
you need to include an onload handler inside that document. The &lt;A 
title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/height.html&quot;&gt;height example&lt;/A&gt; 
demonstrates this.&lt;/P&gt;
&lt;P&gt;A document which includes iframes will not validate as (x)html strict. So, if 
you are concerned about your documents validating, use html transitional 
doctype.&lt;/P&gt;
&lt;P&gt;An error of access denied or permission denied will be triggered if you try 
to access properties of the document loaded into the iframe or its window if 
that document is from another domain.&lt;/P&gt;
&lt;P&gt;Netscape 4 does not support iframes. However, ns4 does support ilayer and 
layer tags which allow html documents to be loaded in. Also, ns4 supports a src 
attribute for the div tag. Yet the differences between iframes and ns4's 
capabilities with these tags are so vast that except for the very simplest of 
content, iframe and ns4 support can't be combined. See &lt;A 
title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/ns4too.html&quot;&gt;&lt;U&gt;this example&lt;/U&gt;&lt;/A&gt; 
for more information.&lt;/P&gt;
&lt;H2&gt;&lt;A name=load&gt;&lt;/A&gt;Loading New Documents into Iframes&lt;/H2&gt;
&lt;P&gt;New documents can be loaded into iframes, from links in the main document as 
well as from links in the document inside the iframe. Links in the main document 
can include a target attribute specifying the name of the iframe element, that 
is, the value of the iframe's &lt;CODE&gt;&lt;FONT face=굴림체&gt;name&lt;/FONT&gt;&lt;/CODE&gt; 
attribute.&lt;/P&gt;
&lt;P&gt;Links in the document contained in the iframe by default will load new 
documents into the iframe. If you want a link to load the new document into the 
main window, i.e., replacing the document containing the iframe, you can specify 
a target of &lt;CODE&gt;&lt;FONT face=굴림체&gt;_parent&lt;/FONT&gt;&lt;/CODE&gt; for that link. The &lt;A 
title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/height.html&quot;&gt;height example&lt;/A&gt; 
demonstrates these options on page 3.&lt;/P&gt;
&lt;P&gt;A function can also be used to load new documents into the iframe. The &lt;A 
title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/height.html&quot;&gt;height example&lt;/A&gt; also 
demonstrates this. The function provides a means of loading documents into two 
iframes from a single link.&lt;/P&gt;
&lt;P&gt;The function to load iframes is a very simple one:&lt;/P&gt;&lt;PRE&gt;function loadIframe(iframeName, url) {
  if ( window.frames[iframeName] ) {
    window.frames[iframeName].location = url;   
    return false;
  }
  else return true;
}
&lt;/PRE&gt;
&lt;P&gt;Links calling this function are set up as follows:&lt;/P&gt;&lt;PRE&gt;&lt;a href=&quot;height1.html&quot;
 onclick=&quot;return loadIframe('ifrm', this.href)&quot;
 &gt;Page 1&lt;/a&gt;
&lt;/PRE&gt;
&lt;P&gt;Browsers not supporting iframes and other incapable browsers will simply load 
the specified URL.&lt;/P&gt;
&lt;H2&gt;&lt;A name=refs&gt;&lt;/A&gt;Referencing - Two Objects&lt;/H2&gt;
&lt;P&gt;Working with iframes involves referencing two very different objects: the 
iframe element, and the window generated by the iframe which contains the 
document loaded into it. Cross-browser cooperation is more likely if you set 
both the id and name attributes, applying the same value to both for 
simplicity.&lt;/P&gt;
&lt;H3&gt;The Iframe Element Object&lt;/H3&gt;
&lt;P&gt;A reference to the iframe element is obtained via its id attribute. 
Theoretically, this should allow for script control of attributes like 
scrolling, frameborder, width, etc. In practice, modifying attributes such as 
scrolling and frameborder have no effect. &lt;/P&gt;
&lt;P&gt;Scripting the iframes style object is effective. See the &lt;A 
title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/fluid.html&quot;&gt;&lt;U&gt;fluid iframe&lt;/U&gt;&lt;/A&gt; 
example, which uses the style object for positioning and sizing the iframe 
within the available window space, resizing and repositioning the iframe 
onresize.&lt;/P&gt;
&lt;H3&gt;The Iframe Window - Frames Array&lt;/H3&gt;
&lt;P&gt;References to the window generated by the iframe and to the document loaded 
into the iframe are obtained via the frames array using the name attribute. 
(contentWindow and contentDocument properties of the iframe element are 
available for some browsers, such as Firefox, NS6+ and Mozilla.)&lt;/P&gt;&lt;PRE&gt;window.frames[iframeName]
window.frames[iframeName].document
&lt;/PRE&gt;
&lt;P&gt;These provide a means of accessing global variables, functions, any objects 
contained in the document such as form elements, or any of the properties of the 
window or document objects for the document contained inside the iframe. Several 
examples demonstrate these capabilities.&lt;/P&gt;
&lt;P&gt;The &lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/height.html&quot;&gt;height example&lt;/A&gt; 
obtains the document height to set iframe height. The &lt;A 
title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/forms.html&quot;&gt;forms example&lt;/A&gt; 
demonstrates back and forth communication between the document containing the 
iframe and the document contained within it quite extensively.&lt;/P&gt;
&lt;P&gt;The scrolling examples demonstrate the use of the iframe window's scrollBy 
method to scroll documents inside the iframe both &lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/scroll-v.html&quot;&gt;vertically&lt;/A&gt; and &lt;A 
title=&quot;opens sub-window&quot; onclick=&quot;return openSubWin(this.href)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/scroll-h.html&quot;&gt;horizontally&lt;/A&gt; from 
links in the document containing the iframe.&lt;/P&gt;
&lt;H2&gt;References from Document Inside Iframe&lt;/H2&gt;
&lt;P&gt;The document loaded into the iframe can access the document containing the 
iframe, the main window and all objects available in them via the &lt;CODE&gt;&lt;FONT 
face=굴림체&gt;parent&lt;/FONT&gt;&lt;/CODE&gt; keyword. For a demonstration of this, see the &lt;A 
title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/forms.html&quot;&gt;forms example&lt;/A&gt;. &lt;/P&gt;
&lt;H2&gt;Using an Iframe as a Buffer&lt;/H2&gt;
&lt;P&gt;A hidden iframe can be used as a &lt;A title=&quot;opens sub-window&quot; 
onclick=&quot;return openSubWin(this.href, '', null, null, 700, 500)&quot; 
href=&quot;http://www.dyn-web.com/dhtml/iframes/buffer.html&quot;&gt;&lt;U&gt;buffer&lt;/U&gt;&lt;/A&gt; for 
loading external content before transferring it into a div. This may be useful 
for more seamlessly integrating the external content into your layout, for 
example, when using a background image. This is also a useful technique for 
incorporating external content into preexisting code for handling layers.&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>HTML DOM Table Object</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6576596"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6576596</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-24T16:06:05Z</updated>
	    <published>2006-01-24T16:06:05Z</published>
	    <content type="html">
	    	
&lt;H1&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/dom_obj_table.asp&quot; target=&quot;_blank&quot;&gt;http://www.w3schools.com/htmldom/dom_obj_table.asp&lt;/A&gt;&lt;/H1&gt;
&lt;H1&gt;HTML DOM Table Object&lt;/H1&gt;
&lt;HR&gt;

&lt;H2&gt;Table Object&lt;/H2&gt;
&lt;P&gt;The Table object represents an HTML table. For each instance of an HTML 
&lt;table&gt; tag in a document, a Table object is created.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;IE:&lt;/B&gt; Internet Explorer, &lt;B&gt;F:&lt;/B&gt; Firefox, &lt;B&gt;N:&lt;/B&gt; Netscape, 
&lt;B&gt;W3C:&lt;/B&gt; World Wide Web Consortium (Internet Standard).&lt;/P&gt;
&lt;H3&gt;Table Object Collections&lt;/H3&gt;
&lt;TABLE class=ex cellSpacing=0 width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH align=left width=&quot;25%&quot;&gt;Collection&lt;/TH&gt;
&lt;TH align=left width=&quot;55%&quot;&gt;Description&lt;/TH&gt;
&lt;TH align=left width=&quot;5%&quot;&gt;IE&amp;nbsp;&lt;/TH&gt;
&lt;TH align=left width=&quot;4%&quot;&gt;F&lt;/TH&gt;
&lt;TH align=left width=&quot;4%&quot;&gt;N&lt;/TH&gt;
&lt;TH align=left width=&quot;7%&quot;&gt;W3C&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/coll_table_cells.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;cells[]&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Returns an array containing each cell in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;5&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/coll_table_rows.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;rows[]&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Returns an array containing each row in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;tBodies[]&lt;/TD&gt;
&lt;TD vAlign=top&gt;Returns an array containing each tbody the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;Table Object Properties&lt;/H3&gt;
&lt;TABLE class=ex cellSpacing=0 width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH align=left width=&quot;25%&quot;&gt;Property&lt;/TH&gt;
&lt;TH align=left width=&quot;55%&quot;&gt;Description&lt;/TH&gt;
&lt;TH align=left width=&quot;5%&quot;&gt;IE&amp;nbsp;&lt;/TH&gt;
&lt;TH align=left width=&quot;4%&quot;&gt;F&lt;/TH&gt;
&lt;TH align=left width=&quot;4%&quot;&gt;N&lt;/TH&gt;
&lt;TH align=left width=&quot;7%&quot;&gt;W3C&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;accessKey&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the keyboard key to access the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;align&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the alignment of the table according to the 
surrounding text&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;background&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the background image of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;bgColor&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the background color of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/prop_table_border.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;border&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the width of the table border&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;borderColor&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the color of the table border&lt;/TD&gt;
&lt;TD vAlign=top&gt;5&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;caption&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the caption of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/prop_table_cellpadding.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;cellPadding&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the amount of space between the cell border and 
cell content&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/prop_table_cellspacing.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;cellSpacing&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the amount of space between cells in the 
table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;cols&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the number of columns in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;disabled&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns whether or not the table should be disabled&lt;/TD&gt;
&lt;TD vAlign=top&gt;5&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/prop_table_frame.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;frame&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns which borders to render around the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;height&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the height of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;id&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the id of the table (In IE 4 this property is 
read-only)&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/prop_table_rules.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;rules&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns which inner-borders to display in a table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;summary&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns a description of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;tabIndex&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the tab order for the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;tFoot&lt;/TD&gt;
&lt;TD vAlign=top&gt;Returns the TFoot object of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;tHead&lt;/TD&gt;
&lt;TD vAlign=top&gt;Returns the THead object of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;width&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets or returns the width of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;Table Object Methods&lt;/H3&gt;
&lt;TABLE class=ex cellSpacing=0 width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH vAlign=top align=left width=&quot;25%&quot;&gt;Method&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;55%&quot;&gt;Description&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;5%&quot;&gt;IE&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;4%&quot;&gt;F&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;4%&quot;&gt;N&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;7%&quot;&gt;W3C&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;blur()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Removes focus from the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;click()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Simulates a mouse-click on the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/met_table_createcaption.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;createCaption()&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Creates an empty caption element in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;createTFoot()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Creates an empty tFoot element in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;createTHead()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Creates an empty tHead element in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;deleteCaption()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Deletes the caption element and its content from the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/met_table_deleterow.asp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;deleteRow()&lt;/U&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Deletes a specified row from the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;deleteTFoot()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Deletes the tFoot element and its content from the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;deleteTHead()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Deletes the tHead element and its content from the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;focus()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Sets focus on the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;A href=&quot;http://www.w3schools.com/htmldom/met_table_insertrow.asp&quot; target=&quot;_blank&quot;&gt;insertRow()&lt;/A&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;Inserts a new row in the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;1&lt;/TD&gt;
&lt;TD vAlign=top&gt;6&lt;/TD&gt;
&lt;TD vAlign=top&gt;Yes&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;moveRow(from,to)&lt;/TD&gt;
&lt;TD vAlign=top&gt;Moves a row to a new position&lt;/TD&gt;
&lt;TD vAlign=top&gt;5&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;refresh()&lt;/TD&gt;
&lt;TD vAlign=top&gt;Refreshes the content of the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;No&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;Table Object Events&lt;/H3&gt;
&lt;P&gt;Syntax: object.event_name=&quot;someJavaScriptCode&quot;&lt;/P&gt;
&lt;TABLE class=ex cellSpacing=0 width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH vAlign=top align=left width=&quot;25%&quot;&gt;Event&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;55%&quot;&gt;Description&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;5%&quot;&gt;IE&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;4%&quot;&gt;F&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;4%&quot;&gt;N&lt;/TH&gt;
&lt;TH vAlign=top align=left width=&quot;7%&quot;&gt;W3C&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;onBlur&lt;/TD&gt;
&lt;TD vAlign=top&gt;Executes some code when the table loses focus&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;onClick&lt;/TD&gt;
&lt;TD vAlign=top&gt;Executes some code when the user clicks on the table&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;onFocus&lt;/TD&gt;
&lt;TD vAlign=top&gt;Executes some code when the table gets focus&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;onSelectStart&lt;/TD&gt;
&lt;TD vAlign=top&gt;Executes some code when the table is selected&lt;/TD&gt;
&lt;TD vAlign=top&gt;4&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>루빅스 큐브) 맞추기</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6574002"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6574002</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-24T13:19:10Z</updated>
	    <published>2006-01-24T13:19:10Z</published>
	    <content type="html">
	    	&lt;TABLE id=printPost0 cellSpacing=0 cellPadding=0 width=572 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 10px; PADDING-TOP: 11px&quot; 
?&gt;&lt;SPAN class=itemSubjectBoldfont&gt;&lt;STRONG&gt;&lt;FONT face=돋움 color=#333333 size=2&gt;루빅스 
큐브) 맞추기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN class=ct&gt;&lt;B&gt;|&lt;/B&gt;&lt;/SPAN&gt; &lt;A 
href=&quot;http://blog.naver.com/post/postList.jsp?blogId=sonmg&amp;categoryNo=8&quot;&gt;&lt;SPAN 
class=ct&gt;&lt;U&gt;재미있는거(樂)&lt;/U&gt;&lt;/SPAN&gt;&lt;A&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD class=eng 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right&gt;2006/01/03 17:29 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD background=http://blogimgs.naver.com/imgs/bg_dot.gif colSpan=2 
height=1&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right colSpan=2 height=20&gt;&lt;A 
href=&quot;http://blog.naver.com/sonmg/20020403936&quot; target=_top&gt;&lt;SPAN 
class=eng_gray&gt;&lt;U&gt;http://blog.naver.com/sonmg/20020403936&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right colSpan=2&gt;&lt;U&gt;&lt;/U&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=view 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 35px; PADDING-TOP: 15px&quot; 
width=572 colSpan=2&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=606&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=577&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px; MARGIN-RIGHT: 10px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;STRONG&gt;루빅스 큐브를 풀기 위해서는&amp;nbsp;수학 문제 
풀이와&amp;nbsp;같이 특정한 공식이 필요합니다.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px; MARGIN-RIGHT: 10px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;루빅스 큐브는 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;우리나라에는 1980년에 소개가 된 장난감으로서, 헝가리 부다페스트 
대학의 상업 미술과 건축학 교수인 Erno Rubik 교수가 개발한 것입니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px; MARGIN-RIGHT: 10px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;이 장난감은 처음에는 학생들에게 3차원의 개념을 이해시키기 위하여 
1975년에 개발되었다고 합니다. &lt;BR&gt;이 큐브는 한번 흐트러 놓으면 특별한 공식을 도입하기 전에는 인간의 감각으로는 절대로 다시 맞출 수가 
없습니다. &lt;BR&gt;이 단순한 장난감에서 나올 수 있는 조합이 무려 43,252,003,274,489,856,000개나 되기 때문입니다. 
&lt;BR&gt;이 웃기지도 않는 장난감으로 인해서 전세계가 떠들썩 했었는데, 빨리 맞추기 세계 대회(13초가 세계 기록)도 자주 열렸었습니다. 물론 
특정한 공식으로 맞추는 시합입니다. 공식은 컴퓨터의 조합으로 찾아내었으며 현재 약 20여개의 공식이 나와 있습니다.&lt;BR&gt;우리나라에서는 1년 
정도 유행하다가 없어져서 거의 잊혀져 가고 있지만, 외국에서는 지속적으로 연구가 되어 3X3X3의 형태가 아닌 5X5X5 형태의 복잡한 큐브까지 
나오고 있으며, 4차원 큐브, 2차원적인 루빅의 마술고리 등 눈으로 보면서도 믿기지 않을 정도로 복잡하고 기발한 모양이 개발되었습니다. 또한 
수학적인 분야로도 자리를 잡아 조합(combination)과 암호학까지 영역을 확장하고 있습니다. 장난감 하나가 이렇게 복잡한 영역까지 진보하고 
연구대상이 된 것은 아마 이 루빅스 큐브가 전무후무할 것입니다.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#990099&gt;&lt;BR&gt;그러면, 루빅스 
큐브를 해결하는 방법을 살펴 보실까요?&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD width=15 height=280 rowSpan=2&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=577 height=9&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=602 colSpan=4 height=18&gt;
&lt;P style=&quot;MARGIN-LEFT: 40px&quot;&gt;&lt;IMG height=14 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title03.jpg&quot; width=79 
border=0&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=42&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=527 colSpan=2&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=33&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=42 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=180 height=67&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=101 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu001.jpg&quot; width=135 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=347 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;BR&gt;왼쪽 그림과 같이 큐빅의 위쪽 면을 
'윗면', 아래 바닥쪽 면을 '바닥면'이라 합니다.&lt;BR&gt;그리고, 위로부터 차례대로 쌓여진 줄을 편의상 각각 '첫째 줄', '둘째 줄', '셋째 
줄'이라 하겠습니다.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=33 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=42&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=527 colSpan=2 height=7&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=33&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=607&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=73&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=155 height=73&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px&quot;&gt;&lt;IMG height=88 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu002.jpg&quot; width=82 
border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=435 height=73&gt;
&lt;P style=&quot;MARGIN-RIGHT: 20px&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;큐빅은 전체적으로 모두 여섯 개의 면으로 이루어져 있고 총 26개의 조각으로 구성되어 있는데, 각 면의 가운데 
조각(색칠한 부분) 6개는 그 위치가 변하지 않고 고정되어 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=590 colSpan=2 height=11&gt;
&lt;P style=&quot;MARGIN-LEFT: 20px; MARGIN-RIGHT: 10px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=607&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=37 height=13&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=551 colSpan=9 height=13&gt;
&lt;P style=&quot;MARGIN-LEFT: 20px&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title04.jpg&quot; width=158 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=13&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37 height=34&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=551 colSpan=9 height=34&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;큐빅을 모두 맞추기 위해서는 다음과 같은 단계를 거쳐야 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=34&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;I&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=105&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=102 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu003.jpg&quot; width=93 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=21&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;II&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=102&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=101 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu004.jpg&quot; width=94 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;III&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=104&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=102 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu005.jpg&quot; width=93 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=20&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;IV&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=132&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=101 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu006.jpg&quot; width=92 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=105&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=21&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=102&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=104&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=20&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=132&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;V&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=105&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=102 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu007.jpg&quot; width=94 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=21&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;VI&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=102&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=101 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu008.jpg&quot; width=93 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;VII&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=104&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=102 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu009.jpg&quot; width=93 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=20&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;VIII&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=132&gt;
&lt;P align=left&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=102 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu010.jpg&quot; width=93 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=551 colSpan=9&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=37 height=110&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=551 colSpan=9 height=110&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;I 단계 ; 윗면 '┼'자 맞추기. 이때, 옆 면의 
가운데 색(검은 부분)과도 맞아야 합니다.&lt;BR&gt;II 단계 ; 윗면 모두와 옆면 'T'자 맞추기&lt;BR&gt;III 단계 ; 윗면 모두와 옆면 두 줄 
맞추기&lt;BR&gt;IV 단계 ; 바닥면 '┼'자 맞추기(바닥면을 위로)&lt;BR&gt;V 단계 ; 셋째줄 가운데 맞추기&lt;BR&gt;VI 단계 ; 연속된 두 개의 
색이 바로 옆의 연속된 두 개의 색과 인접하게 맞추기(바닥면을 위로)&lt;BR&gt;VII 단계 ; 귀퉁이 두 군데만 남기고 모두 맞추기(바닥면을 
위로)&lt;BR&gt;VIII 단계 ; 완성하기&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=110&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=36 height=47&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=540 height=47&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=red&gt;★&amp;nbsp;I 단계와 II 단계는 일정한 공식이나 규칙이 있는 것이 
아니고 조금만 생각하면 누구나 쉽게 맞출 수 있는 단계이므로 여기에서는 생략합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26 height=47&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=540&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=29 height=122 rowSpan=3&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=532 colSpan=3 height=21&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title07.jpg&quot; width=59 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=41 height=122 rowSpan=3&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=155 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu011.jpg&quot; width=108 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=104 height=89&gt;
&lt;P&gt;&lt;IMG height=91 src=&quot;http://user.chollian.net/~kjy8772/cubic/cu012.jpg&quot; 
width=79 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=273 height=89&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;1) A 와 B 가 색이 같도록 아랫줄(셋째줄)을 
움직여 맞춥니다.&lt;BR&gt;2) B의 밑바닥 색이 오른쪽 C와 같을 경우, 아래와 같은 동작을 하면 B가 D 자리로 
들어갑니다.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=blue&gt;※ B의 바닥색이 반대쪽(왼쪽)에 있을 경우에는 좌,우로 돌리는 동작을 반대로 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=532 colSpan=3 height=10&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=29&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=70 src=&quot;http://user.chollian.net/~kjy8772/cubic/c003.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=70 src=&quot;http://user.chollian.net/~kjy8772/cubic/c003.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c012.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=66 height=54&gt;
&lt;P&gt;&lt;IMG height=70 src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=70 height=54&gt;
&lt;P&gt;&lt;IMG height=71 src=&quot;http://user.chollian.net/~kjy8772/cubic/c011.jpg&quot; 
width=65 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=41&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=29 height=123 rowSpan=4&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=531 colSpan=9&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title08.jpg&quot; width=60 border=0&gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=red&gt;바닥면을 위로 향하게 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=44 height=123 rowSpan=4&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 2px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=531 colSpan=9&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=29 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 10px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=21 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;FONT 
color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(1)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=91 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu013.jpg&quot; width=78 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(2)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=89 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=87 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu014.jpg&quot; width=78 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;(3)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=91 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu015.jpg&quot; width=77 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=13 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;(4)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=163 height=89&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=83 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu016.jpg&quot; width=78 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=531 colSpan=9 height=10&gt;
&lt;P style=&quot;MARGIN-LEFT: 30px&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=56 height=33&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=506 colSpan=6 height=33&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;위 그림과 같이 (1)-(4) 까지 모두 네가지 경우가 
있습니다.&lt;BR&gt;다음과 같은 동작을 반복하면 (1)→(2)→(3)→(4)로 차례로 만들어 집니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=40 height=33&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=56&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=40&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=56 height=67&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c010.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=70 src=&quot;http://user.chollian.net/~kjy8772/cubic/c002.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c009.jpg&quot; 
width=63 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=71 src=&quot;http://user.chollian.net/~kjy8772/cubic/c001.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=84 height=67&gt;
&lt;P&gt;&lt;IMG height=68 src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; 
width=64 border=0&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=40 height=67&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=36 height=14&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=547 colSpan=8 height=14&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title09.jpg&quot; width=56 border=0&gt; 
&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=red&gt;다시 뒤집어 원래의 윗면이 위로 가도록 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=14&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=8&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=16&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=104&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=85&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=220&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=8 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=16 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(1)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=104 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=88 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu017.jpg&quot; width=104 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(2)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=79 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu018.jpg&quot; width=79 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(3)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=85 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=86 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu019.jpg&quot; width=79 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=220 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;왼쪽 그림과 같이 A와 B가 둘째 줄의 가운데 색 
C와 맞추어진 경우가 세가지 경우로 나타납니다.&lt;BR&gt;(1) 서로 대각선 방향의 것이 맞는 경우&lt;BR&gt;(2) 인접한 두 면의 것이 맞는 
경우&lt;BR&gt;(3) 네 방향 모두 맞는 경우&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=70&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36 height=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=547 colSpan=8 height=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;아래와 같은 동작을 하면 
(1)→(2)→(3)으로 차례로 만들어집니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=603&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=44 height=6&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=539 colSpan=9 height=6&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=20 height=6&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=44 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(2회)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=66 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=30 colSpan=2 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 8pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=45 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=538 colSpan=7 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title10.jpg&quot; width=60 border=0&gt; 
&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=red&gt;바닥면을 위로 향하게 합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=45&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=538 colSpan=7&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=45 height=79&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=16 height=79&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(1)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=81 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu020.jpg&quot; width=79 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(2)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=79 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=86 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu021.jpg&quot; width=79 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(3)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=99 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=86 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu022.jpg&quot; width=78 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=227 height=79&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;왼쪽 그림과 같이&lt;BR&gt;(1) 연속된 두 개 색이 
없는 경우&lt;BR&gt;(2) 연속된 두 개 색이 한군데 있는 경우&lt;BR&gt;(3) 연속된 두 개 색이 바로 옆에 인접하여 한쌍으로 있는 
경우&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=79&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=45 height=49&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=538 colSpan=7 height=49&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&amp;nbsp;아래와 같은 동작을 하면 (1)→(2)→(3)으로 차례로 
만들어집니다.&lt;BR&gt;이때, (1)의 경우는 동작을 여러번 해야 (2)로 맞춰지는 경우도 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=19 height=49&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=603&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=36 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c001.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=69 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c006.jpg&quot; width=63 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c002.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c001.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=69 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c005.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c002.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=20 height=66&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=36 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=540 colSpan=4 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title11.jpg&quot; width=65 border=0&gt; 
&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=red&gt;바닥면을 위로 향하게 합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=540 colSpan=4&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(a)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=129 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=95 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu023.jpg&quot; width=105 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=350 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;왼쪽 (a) 그림에서와 같이 VI 단계에서 완성된 
인접한 두쌍의 색 부위를 'A'라 하고, 그 양측의 조각을 'B'라고 표시해 보겠습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=44 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=36&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=540 colSpan=4 height=7&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=26&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=35 height=72&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=72&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;(b)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=131 height=72&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=85 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu024.jpg&quot; width=95 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=348 height=72&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;큐빅 전체를 살짝 돌려&amp;nbsp;왼쪽 (b) 그림과 
같이 보이게 한 후, B와 인접한 두 면의 가운데 색, 즉 C색과 D색이 B조각에 모두 들어있는지 
확인합니다.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=53 height=72&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=72&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=35 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=549 colSpan=4 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=16&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=35 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=17 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(c)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=131 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=87 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu025.jpg&quot; width=101 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=348 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;만약 B조각에 C와 D색이 들어있지 않다면, (c) 
그림과 같이 그렇게 되도록 아래 두 줄을 돌려 맞추어 놓습니다.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=53 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=35 height=44&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=549 colSpan=4 height=44&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&amp;nbsp;그 후, 다음과 같은 동작을 하면 B가 C와 D의 색을 
포함하게 되면서 귀퉁이 두 군데만 남게 됩니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=18 height=44&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=603&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=50 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c007.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c001.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=69 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c006.jpg&quot; width=63 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c002.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c008.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c001.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=66&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=69 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c005.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=45 height=66&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=604&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 bgColor=#ccccff height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 10%&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=2&gt;
&lt;P style=&quot;LINE-HEIGHT: 30%&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=17 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=573 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=14 height=11&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=602&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=38 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=534 colSpan=5 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=15 
src=&quot;http://user.chollian.net/~kjy8772/cubic/title12.jpg&quot; width=69 border=0&gt; 
&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=red&gt;다시 뒤집어 원래의 윗면이 위로 가도록 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=30 height=20&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=38&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=534 colSpan=5&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=30&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=38 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=23 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(1)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=80 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=86 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu026.jpg&quot; width=80 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=22 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;(2)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=115 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=83 
src=&quot;http://user.chollian.net/~kjy8772/cubic/cu027.jpg&quot; width=91 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=294 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;왼쪽 그림과 같이, (1) 틀린 색이 대각선 방향에 
놓인 경우, (2) 틀린 색이 한쪽 면으로 몰려있는 경우 - 이렇게 두 가지 경우가 있습니다.&lt;BR&gt;아래와 같은 동작을 하면 
(1)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;→(2)→완성 의 단계를 
거치게 되는데, 이때 (2)의 경우에서 왼쪽 그림의 A 부분이 밑바닥색이 되지 않도록 방향을 잡아야 
합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=30 height=67&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=38&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=534 colSpan=5 height=7&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=30&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=603&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=50 height=57&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot;&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P style=&quot;MARGIN-LEFT: 0px; MARGIN-RIGHT: 0px&quot; align=left&gt;&lt;SPAN 
style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c009.jpg&quot; width=63 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c010.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c009.jpg&quot; width=63 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c004.jpg&quot; width=64 
border=0&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2회&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=57&gt;
&lt;P&gt;&lt;FONT color=#990099&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c010.jpg&quot; width=64 
border=0&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=45 height=57&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=50&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=45&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=50 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c012.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c003.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c011.jpg&quot; width=65 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c003.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=68 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c012.jpg&quot; width=64 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=70 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c003.jpg&quot; width=64 
border=0&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2회&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=72 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;IMG height=71 
src=&quot;http://user.chollian.net/~kjy8772/cubic/c011.jpg&quot; width=65 
border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=45 height=67&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT 
color=#990099&gt;완성&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;(참고로 이 공식의 source는 &lt;A class=con_link 
href=&quot;http://perso.infonie.fr/oxboy/jeux/rubiks/index.html&quot; target=_blank&gt;&lt;A 
class=con_link href=&quot;http://perso.infonie.fr/oxboy/jeux/rubiks/index.html&quot; 
target=_blank&gt;&lt;FONT 
color=#3a3a3a&gt;http://perso.infonie.fr/oxboy/jeux/rubiks/index.html&lt;/FONT&gt;&lt;/A&gt;&lt;/A&gt;에&lt;/A&gt;서 
발췌한 것입니다.)&lt;FONT color=#990099&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>HTML 메뉴 시작위치 설정</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6386976"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6386976</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-17T18:02:50Z</updated>
	    <published>2006-01-17T18:02:50Z</published>
	    <content type="html">
	    	
&lt;P&gt;&lt;base href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice0&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice0&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice0&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice0&lt;/A&gt;&quot;&gt;&lt;BR&gt;&lt;!DOCTYPE 
HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 
Transitional//EN&quot;&gt;&lt;BR&gt;&lt;html&gt;&lt;BR&gt;&lt;head&gt;&lt;BR&gt;&lt;title&gt;LGEP&lt;/title&gt;&lt;BR&gt;&amp;nbsp;&lt;script&gt;&lt;BR&gt;&amp;nbsp;var 
over_id = -1;&lt;BR&gt;&amp;nbsp;var over_subid = -1;&lt;BR&gt;&amp;nbsp;var over_image = 
&quot;&quot;;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function selectSubMenu(ss) 
&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; over_subid = 
ss;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function 
showSubMenu(menu_num)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=1;i &lt;= 6 
;i++)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if( eval(&quot;document.all.submenu&quot;+i) != 
null)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
menu=eval(&quot;document.all.submenu&quot;+i+&quot;.style&quot;);&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
if (menu_num==i)&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
menu.display=&quot;block&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;menu.display=&quot;none&quot;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function 
setDefaultMenu()&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
showSubMenu('6');&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function setMenuVal(oid, 
oimage)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; over_id = 
oid;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; over_image = 
over_image;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;showSubMenu('6');&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function 
findPosX(obj)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;var curleft = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;if 
(obj.offsetParent)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while 
(obj.offsetParent)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curleft += 
obj.offsetLeft&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj = 
obj.offsetParent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;else if 
(obj.x)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;curleft += 
obj.x;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;return 
curleft;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function 
findPosY(obj)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;var curtop = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;if 
(obj.offsetParent)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;while 
(obj.offsetParent)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curtop += 
obj.offsetTop&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;obj = 
obj.offsetParent;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;else if 
(obj.y)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;curtop += obj.y;&lt;BR&gt;&amp;nbsp;&amp;nbsp;return 
curtop;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;function setLyr(obj,lyr)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;var newX = 
findPosX(obj);&lt;BR&gt;&amp;nbsp;&amp;nbsp;var newY = findPosY(obj);&lt;BR&gt;&amp;nbsp;&amp;nbsp;var x = 
new getObj(lyr);&lt;BR&gt;&amp;nbsp;&amp;nbsp;x.style.top = newY + 
'px';&lt;BR&gt;&amp;nbsp;&amp;nbsp;x.style.left = newX + 'px';&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;function setLyrY(obj,lyr, 
aa)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;showSubMenu(aa);&lt;BR&gt;&amp;nbsp;&amp;nbsp;var newX = 
findPosX(obj);&lt;BR&gt;&amp;nbsp;&amp;nbsp;var newY = 60;&lt;BR&gt;&amp;nbsp;&amp;nbsp;var x = new 
getObj(lyr);&lt;BR&gt;&amp;nbsp;&amp;nbsp;x.style.top = newY + 
'px';&lt;BR&gt;&amp;nbsp;&amp;nbsp;x.style.left = newX + 
'px';&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;function getObj(name)&lt;BR&gt;&amp;nbsp;{&lt;BR&gt;&amp;nbsp; 
if (document.getElementById)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.obj = 
document.getElementById(name);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.style = 
document.getElementById(name).style;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; else if 
(document.all)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.obj = 
document.all[name];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.style = 
document.all[name].style;&lt;BR&gt;&amp;nbsp; 
}&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&lt;/script&gt;&lt;BR&gt;&lt;/head&gt;&lt;BR&gt;&lt;body&gt; 
&lt;BR&gt;&lt;table&gt;&lt;BR&gt;&lt;tr&gt;&lt;td height=&quot;15&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table width=&quot;100%&quot;&amp;nbsp; border=&quot;1&quot; cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;!--main menu 
bar--&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table width=&quot;100%&quot; height=&quot;15&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; 
cellspacing=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;3&quot; 
class=&quot;bg_gray_ddded9&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;23&quot; valign=&quot;top&quot; 
background=&quot;/ezWeb/framework/skins/ep_ia_green/images/menu/top_menu_bg.gif&quot; 
&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table height=&quot;3&quot; cellspacing=&quot;0&quot; border=&quot;1&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td 
height=&quot;3&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu&quot; 
onMouseOver=&quot;setLyrY(this,'submenu1','1');&quot;&gt;&lt;a href=&quot;#&quot; 
style=&quot;cursor:default;&quot;&gt;My 
Work&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td 
height=&quot;3&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu&quot; 
onMouseOver=&quot;setLyrY(this,'submenu2','2');&quot;&gt;&lt;a href=&quot;#&quot; 
style=&quot;cursor:default;&quot;&gt;Supporting 
Work&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td 
height=&quot;3&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu&quot;&gt;&lt;a href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_knowledge&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_knowledge&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_knowledge&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_knowledge&lt;/A&gt;&quot; 
onMouseOver=&quot;showSubMenu(3);&quot;&gt;Knowledge&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td 
height=&quot;3&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu&quot;&gt;&lt;a href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_learning&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_learning&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_learning&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_learning&lt;/A&gt;&quot; 
onMouseOver=&quot;showSubMenu(4);&quot;&gt;Learning&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td 
height=&quot;3&quot;&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu&quot;&gt;&lt;a href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication1&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication1&lt;/A&gt;&quot; 
onMouseOver=&quot;showSubMenu(5);&quot;&gt;Communication&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;table cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;3&quot; 
background=&quot;/ezWeb/framework/skins/ep_ia_green/images/menu/top_menu_on.gif&quot; 
style=&quot;background-repeat:no-repeat; background-position: center&quot; 
&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;tr align=&quot;center&quot; 
valign=&quot;top&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td height=&quot;20&quot; class=&quot;top_menu_selected&quot;&gt;&lt;a href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice0&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice0&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice0&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice0&lt;/A&gt;&quot; 
onMouseOver=&quot;showSubMenu(6);&quot;&gt;HR 
Service&lt;/a&gt;&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;td&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;table width=&quot;100%&quot; height=&quot;15&quot; 
border=&quot;1&quot; cellpadding=&quot;0&quot; 
cellspacing=&quot;0&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&lt;tr&gt;&lt;td 
class=&quot;bg_light&quot;&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&lt;DIV id=submenu1 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:15px; height:13px; z-index:3; MARGIN-LEFT: 0px; MARGIN-TOP: 
0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('1');&quot; onfocus=&quot;blur()&quot;&gt;&lt;table 
width='100%' height=&quot;11&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; 
cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth &quot;&amp;nbsp; 
nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_todo&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_todo&amp;selectedPage=0p_todo&quot;&gt;To'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_todo&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_todo&amp;selectedPage=0p_todo&quot;&gt;To&lt;/A&gt; 
Do&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mw_ehr1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mw_ehr1&amp;selectedPage=1p_mw_ehr1&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mw_ehr1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mw_ehr1&amp;selectedPage=1p_mw_ehr1&lt;/A&gt;&quot;&gt;내 
성과 관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mw_ehr2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mw_ehr2&amp;selectedPage=2p_mw_ehr2&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mw_ehr2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mw_ehr2&amp;selectedPage=2p_mw_ehr2&lt;/A&gt;&quot;&gt;부서원 
인사정보&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_kiss&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_kiss&amp;selectedPage=3page_wp_kiss&quot;&gt;FINE&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_kiss&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_kiss&amp;selectedPage=3page_wp_kiss&quot;&gt;FINE&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_mkt&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_mkt&amp;selectedPage=4page_wp_mkt&quot;&gt;해외마케팅&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_mkt&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_mkt&amp;selectedPage=4page_wp_mkt&quot;&gt;해외마케팅&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_workplace3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_workplace3&amp;selectedPage=5page_workplace3&quot;&gt;HR'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_workplace3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_workplace3&amp;selectedPage=5page_workplace3&quot;&gt;HR&lt;/A&gt; 
관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_ga&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_ga&amp;selectedPage=6page_wp_ga&quot;&gt;업무지원관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_wp_ga&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_wp_ga&amp;selectedPage=6page_wp_ga&quot;&gt;업무지원관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=w_finance&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=w_finance&amp;selectedPage=7w_finance&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=w_finance&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=w_finance&amp;selectedPage=7w_finance&lt;/A&gt;&quot;&gt;무전표 
회계&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href=&quot;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=w_admin&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=w_admin&amp;selectedPage=8w_admin&quot;&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=w_admin&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=w_admin&amp;selectedPage=8w_admin&lt;/A&gt;&quot;&gt;무전표 
관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_workplace2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_workplace2&amp;selectedPage=9page_workplace2&quot;&gt;예산&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_workplace2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_workplace2&amp;selectedPage=9page_workplace2&quot;&gt;예산&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_psms&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_psms&amp;selectedPage=10p_psms&quot;&gt;Process'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_psms&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_psms&amp;selectedPage=10p_psms&quot;&gt;Process&lt;/A&gt; 
Set&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&lt;DIV id=submenu2 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:107px; height:13px; z-index:3; MARGIN-LEFT: 0px; 
MARGIN-TOP: 0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('2');&quot; 
onfocus=&quot;blur()&quot;&gt;&lt;table width='100%' height=&quot;11&quot; border=&quot;1&quot; 
cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth 
&quot;&amp;nbsp; nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_ss_ga&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_ss_ga&amp;selectedPage=0page_ss_ga&quot;&gt;업무지원&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_ss_ga&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_ss_ga&amp;selectedPage=0page_ss_ga&quot;&gt;업무지원&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_selfservice2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_selfservice2&amp;selectedPage=1page_selfservice2&quot;&gt;비용품의&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_selfservice2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_selfservice2&amp;selectedPage=1page_selfservice2&quot;&gt;비용품의&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=P82001&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=P82001&amp;selectedPage=2P82001&quot;&gt;Business'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=P82001&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=P82001&amp;selectedPage=2P82001&quot;&gt;Business&lt;/A&gt; 
Trip&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_itservice&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_itservice&amp;selectedPage=3p_itservice&quot;&gt;IT'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_itservice&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_itservice&amp;selectedPage=3p_itservice&quot;&gt;IT&lt;/A&gt; 
Service&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV&gt;&lt;BR&gt;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&lt;DIV id=submenu3 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:240px; height:13px; z-index:3; MARGIN-LEFT: 0px; 
MARGIN-TOP: 0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('3');&quot; 
onfocus=&quot;blur()&quot;&gt;&lt;table width='100%' height=&quot;11&quot; border=&quot;1&quot; 
cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth 
&quot;&amp;nbsp; nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_best_practice&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_best_practice&amp;selectedPage=0p_best_practice&quot;&gt;Best'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_best_practice&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_best_practice&amp;selectedPage=0p_best_practice&quot;&gt;Best&lt;/A&gt; 
Practice&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_to_expert&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_to_expert&amp;selectedPage=1p_to_expert&quot;&gt;ToExpert&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_to_expert&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_to_expert&amp;selectedPage=1p_to_expert&quot;&gt;ToExpert&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_cop&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_cop&amp;selectedPage=2p_cop&quot;&gt;CoP&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_cop&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_cop&amp;selectedPage=2p_cop&quot;&gt;CoP&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_kpool&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_kpool&amp;selectedPage=3p_kpool&quot;&gt;K-Pool&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_kpool&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_kpool&amp;selectedPage=3p_kpool&quot;&gt;K-Pool&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_boss&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_boss&amp;selectedPage=4p_boss&quot;&gt;BOSS&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_boss&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_boss&amp;selectedPage=4p_boss&quot;&gt;BOSS&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_gos&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_gos&amp;selectedPage=5p_gos&quot;&gt;GOS&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_gos&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_gos&amp;selectedPage=5p_gos&quot;&gt;GOS&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_survey&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_survey&amp;selectedPage=6p_survey&quot;&gt;Survey&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_survey&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_survey&amp;selectedPage=6p_survey&quot;&gt;Survey&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_kms_preference&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_kms_preference&amp;selectedPage=7p_kms_preference&quot;&gt;Preference&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_kms_preference&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_kms_preference&amp;selectedPage=7p_kms_preference&quot;&gt;Preference&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_admintool&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_admintool&amp;selectedPage=8p_admintool&quot;&gt;AdminTool&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_admintool&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_admintool&amp;selectedPage=8p_admintool&quot;&gt;AdminTool&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV&lt;/A&gt;&gt;&lt;BR&gt;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&lt;DIV id=submenu4 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:340px; height:13px; z-index:3; MARGIN-LEFT: 0px; 
MARGIN-TOP: 0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('4');&quot; 
onfocus=&quot;blur()&quot;&gt;&lt;table width='100%' height=&quot;11&quot; border=&quot;1&quot; 
cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth 
&quot;&amp;nbsp; nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mylearning&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mylearning&amp;selectedPage=0p_mylearning&quot;&gt;My'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_mylearning&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_mylearning&amp;selectedPage=0p_mylearning&quot;&gt;My&lt;/A&gt; 
Learning&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_catalog&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_catalog&amp;selectedPage=1p_catalog&quot;&gt;Catalog&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_catalog&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_catalog&amp;selectedPage=1p_catalog&quot;&gt;Catalog&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_community&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_community&amp;selectedPage=2p_community&quot;&gt;Community&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_community&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_community&amp;selectedPage=2p_community&quot;&gt;Community&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_support&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_support&amp;selectedPage=3p_support&quot;&gt;Support&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_support&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_support&amp;selectedPage=3p_support&quot;&gt;Support&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV&lt;/A&gt;&gt;&lt;BR&gt;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&lt;DIV id=submenu5 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:430px; height:13px; z-index:3; MARGIN-LEFT: 0px; 
MARGIN-TOP: 0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('5');&quot; 
onfocus=&quot;blur()&quot;&gt;&lt;table width='100%' height=&quot;11&quot; border=&quot;1&quot; 
cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth 
&quot;&amp;nbsp; nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication1&amp;selectedPage=0page_communication1&quot;&gt;전사&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication1&amp;selectedPage=0page_communication1&quot;&gt;전사&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication2&amp;selectedPage=1page_communication2&quot;&gt;DA&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication2&amp;selectedPage=1page_communication2&quot;&gt;DA&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication3&amp;selectedPage=2page_communication3&quot;&gt;DD&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication3&amp;selectedPage=2page_communication3&quot;&gt;DD&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication4&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication4&amp;selectedPage=3page_communication4&quot;&gt;DM&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication4&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication4&amp;selectedPage=3page_communication4&quot;&gt;DM&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication5&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication5&amp;selectedPage=4page_communication5&quot;&gt;MC&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication5&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication5&amp;selectedPage=4page_communication5&quot;&gt;MC&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication6&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication6&amp;selectedPage=5page_communication6&quot;&gt;CTO&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication6&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication6&amp;selectedPage=5page_communication6&quot;&gt;CTO&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication7&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication7&amp;selectedPage=6page_communication7&quot;&gt;한국마케팅&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=page_communication7&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=page_communication7&amp;selectedPage=6page_communication7&quot;&gt;한국마케팅&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/DIV&lt;/A&gt;&gt;&lt;BR&gt;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&lt;DIV id=submenu6 style=&quot;DISPLAY: none; position:absolute; 
top:60px;&amp;nbsp; left:560px; height:13px; z-index:3; MARGIN-LEFT: 0px; 
MARGIN-TOP: 0px;&quot;&amp;nbsp; onMouseOver=&quot;showSubMenu('6');&quot; 
onfocus=&quot;blur()&quot;&gt;&lt;table width='100%' height=&quot;11&quot; border=&quot;1&quot; 
cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td class=&quot;top_menu_2depth 
&quot;&amp;nbsp; nowrap&gt;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice1&amp;selectedPage=0p_hrservice1&quot;&gt;My'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice1&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice1&amp;selectedPage=0p_hrservice1&quot;&gt;My&lt;/A&gt; 
인사정보&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&amp;nbsp; href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice2&amp;selectedPage=1p_hrservice2&quot;&gt;급여&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice2&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice2&amp;selectedPage=1p_hrservice2&quot;&gt;급여&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice3&amp;selectedPage=2p_hrservice3&quot;&gt;근태관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice3&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice3&amp;selectedPage=2p_hrservice3&quot;&gt;근태관리&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a&lt;/A&gt;&amp;nbsp; 
href=&quot;&lt;A 
href='http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice4&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice4&amp;selectedPage=3p_hrservice4&quot;&gt;복리후생&lt;/a&gt;&lt;/td'&gt;http://testep.lge.com:82/ezWeb/appmanager/LGE/system?_nfpb=true&amp;_pageLabel=p_hrservice4&amp;_mode=view&amp;_nfls=false&amp;returnToPortal=p_hrservice4&amp;selectedPage=3p_hrservice4&quot;&gt;복리후생&lt;/a&gt;&lt;/td&lt;/A&gt;&gt;&lt;BR&gt;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&lt;/tr&gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/td&gt;&lt;/tr&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&lt;/table&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/body&gt;&lt;BR&gt;&lt;/html&gt;&lt;BR&gt;&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>통계 쿼리 한방에 처리하기</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6283087"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6283087</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-13T14:27:46Z</updated>
	    <published>2006-01-13T14:27:46Z</published>
	    <content type="html">
	    	
&lt;P&gt;&gt;Table&lt;/P&gt;
&lt;P&gt;B1&amp;nbsp;B2&amp;nbsp;B3&amp;nbsp;B4&amp;nbsp;B5&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;47&amp;nbsp;1&amp;nbsp;1AN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;52&amp;nbsp;2&amp;nbsp;2AN&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;48&amp;nbsp;3&amp;nbsp;3AN&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;47&amp;nbsp;1&amp;nbsp;AN&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;54&amp;nbsp;2&amp;nbsp;1BN&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;90&amp;nbsp;3&amp;nbsp;BN&lt;BR&gt;B&amp;nbsp;B'&amp;nbsp;45&amp;nbsp;1&amp;nbsp;2BN&lt;BR&gt;C&amp;nbsp;A'&amp;nbsp;46&amp;nbsp;2&amp;nbsp;CN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;77&amp;nbsp;3&amp;nbsp;AN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;47&amp;nbsp;4&amp;nbsp;AN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;88&amp;nbsp;1&amp;nbsp;AN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;86&amp;nbsp;2&amp;nbsp;3A&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;123&amp;nbsp;1&amp;nbsp;AN&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;A1&amp;nbsp;2&amp;nbsp;BN&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;99&amp;nbsp;2&amp;nbsp;BNN&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&gt;Query&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;SELECT * FROM (&lt;BR&gt;SELECT &lt;BR&gt;DECODE(GROUPING(B1),1,'+',B1) 
T1,&lt;BR&gt;DECODE(GROUPING(B1),1,'+',DECODE(GROUPING(B2),1,'-',B2)) T2,&lt;BR&gt;MAX(B5) 
AS B5,&lt;BR&gt;MIN(decode(COL,1,B3)) N1, &lt;BR&gt;SUM(decode(COL,1,B4)) 
C1,&lt;BR&gt;MIN(decode(COL,2,B3)) N2, &lt;BR&gt;SUM(decode(COL,2,B4)) 
C2,&lt;BR&gt;MIN(decode(COL,3,B3)) N3, &lt;BR&gt;SUM(decode(COL,3,B4)) C3,&lt;BR&gt;MIN(CASE WHEN 
COL &gt; 3 THEN 'ETC' ELSE '' END) N4, &lt;BR&gt;SUM(CASE WHEN COL &gt; 3 THEN B4 ELSE 
0 END) C4 &lt;BR&gt;FROM&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; SELECT B1,B2,B3,SUM(B4) B4, RANK() OVER 
(PARTITION BY B1,B2 ORDER BY LENGTH(B3),B3) AS COL, MAX(B5) AS B5&lt;BR&gt;&amp;nbsp; FROM 
B &lt;BR&gt;&amp;nbsp; GROUP BY B1,B2,B3&lt;BR&gt;&amp;nbsp; ORDER BY B1,B2&lt;BR&gt;&amp;nbsp; )&lt;BR&gt;GROUP BY 
ROLLUP (B1,B2)&lt;BR&gt;) A WHERE T2 &lt;&gt; '-'&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&gt;Result&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;T1&amp;nbsp;T2&amp;nbsp;B5&amp;nbsp;N1&amp;nbsp;C1&amp;nbsp;N2&amp;nbsp;C2&amp;nbsp;N3&amp;nbsp;C3&amp;nbsp;N4&amp;nbsp;C4&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;5&amp;nbsp;52&amp;nbsp;2&amp;nbsp;77&amp;nbsp;3&amp;nbsp;ETC&amp;nbsp;4&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;1&amp;nbsp;48&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;BN&amp;nbsp;54&amp;nbsp;2&amp;nbsp;90&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;BR&gt;B&amp;nbsp;B'&amp;nbsp;2BN&amp;nbsp;45&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;BNN&amp;nbsp;99&amp;nbsp;2&amp;nbsp;A1&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;BR&gt;C&amp;nbsp;A'&amp;nbsp;CN&amp;nbsp;46&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&lt;BR&gt;+&amp;nbsp;+&amp;nbsp;CN&amp;nbsp;45&amp;nbsp;13&amp;nbsp;48&amp;nbsp;10&amp;nbsp;77&amp;nbsp;3&amp;nbsp;ETC&amp;nbsp;4&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;================&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&gt;Table&lt;/P&gt;
&lt;P&gt;B1&amp;nbsp;B2&amp;nbsp;B3&amp;nbsp;B4&amp;nbsp;B5&amp;nbsp;B6&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;47&amp;nbsp;1&amp;nbsp;1AN&amp;nbsp;AN&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;52&amp;nbsp;2&amp;nbsp;2AN&amp;nbsp;AB&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;48&amp;nbsp;3&amp;nbsp;3AN&amp;nbsp;AG&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;47&amp;nbsp;1&amp;nbsp;AN&amp;nbsp;AG&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;54&amp;nbsp;2&amp;nbsp;1BN&amp;nbsp;BG&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;90&amp;nbsp;3&amp;nbsp;BN&amp;nbsp;BN&lt;BR&gt;B&amp;nbsp;B'&amp;nbsp;45&amp;nbsp;1&amp;nbsp;2BN&amp;nbsp;BB&lt;BR&gt;C&amp;nbsp;A'&amp;nbsp;46&amp;nbsp;2&amp;nbsp;CN&amp;nbsp;CB&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;77&amp;nbsp;3&amp;nbsp;AN&amp;nbsp;AG&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;47&amp;nbsp;4&amp;nbsp;AN&amp;nbsp;AY&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;88&amp;nbsp;1&amp;nbsp;AN&amp;nbsp;AY&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;86&amp;nbsp;2&amp;nbsp;3A&amp;nbsp;AG&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;123&amp;nbsp;1&amp;nbsp;AN&amp;nbsp;AB&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;A1&amp;nbsp;2&amp;nbsp;BN&amp;nbsp;BW&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;99&amp;nbsp;2&amp;nbsp;BNN&amp;nbsp;BB&lt;/P&gt;
&lt;P&gt;&gt;Query&lt;/P&gt;
&lt;P&gt;SELECT DECODE(T1,'+','TOT',T1) AS T1,&lt;BR&gt;DECODE(T2,'+','',T2) AS 
T2,&lt;BR&gt;DECODE(T1,'+','',B5) AS B5,&lt;BR&gt;DECODE(T1,'+','',N1) AS 
N1,C1,&lt;BR&gt;DECODE(T1,'+','',N2) AS N2,C2,&lt;BR&gt;DECODE(T1,'+','',N3) AS 
N3,C3,&lt;BR&gt;DECODE(T1,'+','',N4) AS N4,C4&lt;BR&gt;FROM (&lt;BR&gt;&amp;nbsp; SELECT &lt;BR&gt;&amp;nbsp; 
DECODE(GROUPING(B1),1,'+',B1) T1,&lt;BR&gt;&amp;nbsp; 
DECODE(GROUPING(B1),1,'+',DECODE(GROUPING(B2),1,'-',B2)) T2,&lt;BR&gt;&amp;nbsp; MAX(B5) 
AS B5,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,1,B3)) N1, &lt;BR&gt;&amp;nbsp; SUM(decode(COL,1,B4)) 
C1,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,2,B3)) N2, &lt;BR&gt;&amp;nbsp; SUM(decode(COL,2,B4)) 
C2,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,3,B3)) N3, &lt;BR&gt;&amp;nbsp; SUM(decode(COL,3,B4)) 
C3,&lt;BR&gt;&amp;nbsp; MIN(CASE WHEN COL &gt; 3 THEN 'ETC' ELSE '' END) N4, &lt;BR&gt;&amp;nbsp; 
SUM(CASE WHEN COL &gt; 3 THEN B4 ELSE null END) C4 &lt;BR&gt;&amp;nbsp; FROM&lt;BR&gt;&amp;nbsp; 
(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT B1,B2,B3,SUM(nvl(B4,0)) B4, RANK() OVER 
(PARTITION BY B1,B2 ORDER BY LENGTH(B3),B3) AS COL, MAX(B5) AS 
B5&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM B &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP BY 
B1,B2,B3&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY B1,B2&lt;BR&gt;&amp;nbsp; )&lt;BR&gt;&amp;nbsp; GROUP BY 
ROLLUP (B1,B2)&lt;BR&gt;) A WHERE T2 &lt;&gt; '-'&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&gt;Result&lt;/P&gt;
&lt;P&gt;T1&amp;nbsp;T2&amp;nbsp;B5&amp;nbsp;N1&amp;nbsp;C1&amp;nbsp;N2&amp;nbsp;C2&amp;nbsp;N3&amp;nbsp;C3&amp;nbsp;N4&amp;nbsp;C4&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;5&amp;nbsp;52&amp;nbsp;2&amp;nbsp;77&amp;nbsp;3&amp;nbsp;ETC&amp;nbsp;4&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;1&amp;nbsp;48&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;BN&amp;nbsp;54&amp;nbsp;2&amp;nbsp;90&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;B'&amp;nbsp;2BN&amp;nbsp;45&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;BNN&amp;nbsp;99&amp;nbsp;2&amp;nbsp;A1&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;C&amp;nbsp;A'&amp;nbsp;CN&amp;nbsp;46&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;TOT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;3&amp;nbsp;&amp;nbsp;4&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&gt;Query&lt;/P&gt;
&lt;P&gt;SELECT DECODE(T1,'+','TOT',T1) AS T1,&lt;BR&gt;DECODE(T2,'+','',T2) AS 
T2,&lt;BR&gt;DECODE(T2,'+','',T6) AS T6,&lt;BR&gt;DECODE(T1,'+','',B5) AS 
B5,&lt;BR&gt;DECODE(T1,'+','',N1) AS N1,C1,&lt;BR&gt;DECODE(T1,'+','',N2) AS 
N2,C2,&lt;BR&gt;DECODE(T1,'+','',N3) AS N3,C3,&lt;BR&gt;DECODE(T1,'+','',N4) AS 
N4,C4&lt;BR&gt;FROM (&lt;BR&gt;&amp;nbsp; SELECT &lt;BR&gt;&amp;nbsp; DECODE(GROUPING(B1),1,'+',B1) 
T1,&lt;BR&gt;&amp;nbsp; DECODE(GROUPING(B1),1,'+',DECODE(GROUPING(B2),1,'-',B2)) 
T2,&lt;BR&gt;&amp;nbsp; 
DECODE(GROUPING(B1),1,'+',DECODE(GROUPING(B6),1,'-',DECODE(GROUPING(B6),1,'-',B6))) 
T6,&lt;BR&gt;&amp;nbsp; MAX(B5) AS B5,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,1,B3)) N1, &lt;BR&gt;&amp;nbsp; 
SUM(decode(COL,1,B4)) C1,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,2,B3)) N2, &lt;BR&gt;&amp;nbsp; 
SUM(decode(COL,2,B4)) C2,&lt;BR&gt;&amp;nbsp; MIN(decode(COL,3,B3)) N3, &lt;BR&gt;&amp;nbsp; 
SUM(decode(COL,3,B4)) C3,&lt;BR&gt;&amp;nbsp; MIN(CASE WHEN COL &gt; 3 THEN 'ETC' ELSE '' 
END) N4, &lt;BR&gt;&amp;nbsp; SUM(CASE WHEN COL &gt; 3 THEN B4 ELSE null END) C4 
&lt;BR&gt;&amp;nbsp; FROM&lt;BR&gt;&amp;nbsp; (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT 
B1,B2,B6,B3,SUM(nvl(B4,0)) B4, RANK() OVER (PARTITION BY B1,B2,B6 ORDER BY 
LENGTH(B3),B3) AS COL, MAX(B5) AS B5&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM B 
&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP BY B1,B2,B6,B3&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORDER BY 
B1,B2,B6,COL&lt;BR&gt;&amp;nbsp; )&lt;BR&gt;&amp;nbsp; GROUP BY ROLLUP (B1,B2,B6)&lt;BR&gt;) A WHERE T2 
&lt;&gt; '-' AND T6 &lt;&gt; '-' &lt;/P&gt;
&lt;P&gt;&gt;Result&lt;/P&gt;
&lt;P&gt;T1&amp;nbsp;T2&amp;nbsp;T6&amp;nbsp;B5&amp;nbsp;N1&amp;nbsp;C1&amp;nbsp;N2&amp;nbsp;C2&amp;nbsp;N3&amp;nbsp;C3&amp;nbsp;N4&amp;nbsp;C4&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AB&amp;nbsp;AN&amp;nbsp;52&amp;nbsp;2&amp;nbsp;123&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AG&amp;nbsp;AN&amp;nbsp;77&amp;nbsp;3&amp;nbsp;86&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AN&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;1&amp;nbsp;65&amp;nbsp;1&amp;nbsp;88&amp;nbsp;2&amp;nbsp;&amp;nbsp;&lt;BR&gt;A&amp;nbsp;A'&amp;nbsp;AY&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;4&amp;nbsp;88&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;A&amp;nbsp;B'&amp;nbsp;AG&amp;nbsp;AN&amp;nbsp;47&amp;nbsp;1&amp;nbsp;48&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;BG&amp;nbsp;1BN&amp;nbsp;54&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;A'&amp;nbsp;BN&amp;nbsp;BN&amp;nbsp;11&amp;nbsp;3&amp;nbsp;23&amp;nbsp;2&amp;nbsp;55&amp;nbsp;2&amp;nbsp;ETC&amp;nbsp;9&lt;BR&gt;B&amp;nbsp;B'&amp;nbsp;BB&amp;nbsp;2BN&amp;nbsp;45&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;BB&amp;nbsp;BNN&amp;nbsp;99&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;B&amp;nbsp;C'&amp;nbsp;BW&amp;nbsp;BN&amp;nbsp;A1&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;C&amp;nbsp;A'&amp;nbsp;CB&amp;nbsp;CN&amp;nbsp;46&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;TOT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&amp;nbsp;&amp;nbsp;10&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;9&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>Oracle 통계 쿼리-RANK,ROLLUP</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/6184814"/>
		<id>tag:blog.daum.net,2009:dongeunpa.6184814</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2006-01-10T20:08:38Z</updated>
	    <published>2006-01-10T20:08:38Z</published>
	    <content type="html">
	    	
&lt;P&gt;SELECT B1,B2,&lt;BR&gt;MIN(decode(COL,1,B3)) N1, SUM(decode(COL,1,B4)) 
C1,&lt;BR&gt;MIN(decode(COL,2,B3)) N2, SUM(decode(COL,2,B4)) 
C2,&lt;BR&gt;MIN(decode(COL,3,B3)) N3, SUM(decode(COL,3,B4)) C3&lt;BR&gt;FROM&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; 
SELECT B1,B2,B3,SUM(B4) B4, RANK() OVER (PARTITION BY B1,B2 ORDER BY B3) AS 
COL&lt;BR&gt;&amp;nbsp; FROM B &lt;BR&gt;&amp;nbsp; GROUP BY B1,B2,B3&lt;BR&gt;)&lt;BR&gt;GROUP BY B1,B2&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;SELECT &lt;BR&gt;DECODE(GROUPING(B1),1,'합계',B1) 
T1,&lt;BR&gt;DECODE(GROUPING(B1),1,'합계',DECODE(GROUPING(B2),1,'소계',B2)) 
T2,&lt;BR&gt;MIN(decode(COL,1,B3)) N1, SUM(decode(COL,1,B4)) 
C1,&lt;BR&gt;MIN(decode(COL,2,B3)) N2, SUM(decode(COL,2,B4)) 
C2,&lt;BR&gt;MIN(decode(COL,3,B3)) N3, SUM(decode(COL,3,B4)) C3&lt;BR&gt;FROM&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; 
SELECT B1,B2,B3,SUM(B4) B4, RANK() OVER (PARTITION BY B1,B2 ORDER BY B3) AS 
COL&lt;BR&gt;&amp;nbsp; FROM B &lt;BR&gt;&amp;nbsp; GROUP BY B1,B2,B3&lt;BR&gt;)&lt;BR&gt;GROUP BY 
ROLLUP(B1,B2)&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;SELECT &lt;BR&gt;DECODE(GROUPING(B1),1,'합계',B1) 
T1,&lt;BR&gt;DECODE(GROUPING(B1),1,'합계',DECODE(GROUPING(B2),1,'소계',B2)) 
T2,&lt;BR&gt;DECODE(GROUPING(B2),1, '',MIN(decode(COL,1,B3))) N1, 
&lt;BR&gt;SUM(decode(COL,1,B4)) C1,&lt;BR&gt;MIN(decode(COL,2,B3)) N2, 
&lt;BR&gt;SUM(decode(COL,2,B4)) C2,&lt;BR&gt;MIN(decode(COL,3,B3)) N3, SUM(decode(COL,3,B4)) 
C3&lt;BR&gt;FROM&lt;BR&gt;(&lt;BR&gt;&amp;nbsp; SELECT B1,B2,B3,SUM(B4) B4, RANK() OVER (PARTITION BY 
B1,B2 ORDER BY B3) AS COL&lt;BR&gt;&amp;nbsp; FROM B &lt;BR&gt;&amp;nbsp; GROUP BY 
B1,B2,B3&lt;BR&gt;)&lt;BR&gt;GROUP BY ROLLUP(B1,B2)&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>WAS 죽었을경우 연결된 Web Server 에서 에러메시지 연결</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5855504"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5855504</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-30T15:59:17Z</updated>
	    <published>2005-12-30T15:59:17Z</published>
	    <content type="html">
	    	&lt;TABLE id=printPost0 cellSpacing=0 cellPadding=0 width=572 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 9px; PADDING-BOTTOM: 10px; PADDING-TOP: 11px&quot; 
?&gt;&lt;SPAN class=itemSubjectBoldfont&gt;&lt;STRONG&gt;&lt;FONT face=돋움 color=#333333 size=2&gt;WAS 
죽었을경우 연결된 Web Server 에서 에러메시지 연결&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN 
class=ct&gt;&lt;B&gt;|&lt;/B&gt;&lt;/SPAN&gt; &lt;A 
href=&quot;http://blog.naver.com/post/postList.jsp?blogId=leslie1211&amp;categoryNo=4&quot;&gt;&lt;SPAN 
class=ct&gt;&lt;U&gt;프로그래밍&lt;/U&gt;&lt;/SPAN&gt;&lt;A&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD class=eng 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right&gt;2004/07/23 09:55 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD background=http://blogimgs.naver.com/imgs/bg_dot.gif colSpan=2 
height=1&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right colSpan=2 height=20&gt;&lt;A 
href=&quot;http://blog.naver.com/leslie1211/140004339214&quot; target=_top&gt;&lt;SPAN 
class=eng_gray&gt;&lt;U&gt;http://blog.naver.com/leslie1211/140004339214&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
align=right colSpan=2&gt;&lt;U&gt;&lt;/U&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=view 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 35px; PADDING-TOP: 15px&quot; 
width=572 colSpan=2&gt;WebServer : iplanet&lt;BR&gt;WAS : weblogic&lt;BR&gt;&lt;BR&gt;웹서버의 
...&lt;BR&gt;&lt;STRONG&gt;/usr/iplanet/servers/https-cms/config/&lt;FONT 
color=#006699&gt;obj.conf &lt;/FONT&gt;&lt;/STRONG&gt;파일 수정 &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;NameTrans 
fn=&quot;NSServletNameTrans&quot; name=&quot;servlet&quot;&lt;BR&gt;NameTrans fn=&quot;pfx2dir&quot; from=&quot;/servlet&quot; 
dir=&quot;$docroot/servlet&quot; name=&quot;ServletByExt&quot;&lt;BR&gt;NameTrans fn=pfx2dir 
from=/mc-icons dir=&quot;/usr/iplanet/servers/ns-icons&quot; 
name=&quot;es-internal&quot;&lt;BR&gt;NameTrans fn=&quot;pfx2dir&quot; from=&quot;/manual&quot; 
dir=&quot;/usr/iplanet/servers/manual/https&quot; name=&quot;es-internal&quot;&lt;BR&gt;NameTrans 
fn=&quot;pfx2dir&quot; from=&quot;/hp&quot; dir=&quot;/usr/iplanet/servers/docs/hp&quot;&lt;BR&gt;NameTrans 
fn=&quot;pfx2dir&quot; from=&quot;/exam_image&quot; 
dir=&quot;/sys1.d/common/data/hp/homepage/exam_jubsoo&quot; 
name=&quot;es-internal&quot;&lt;BR&gt;NameTrans fn=&quot;pfx2dir&quot; from=&quot;/draqura&quot; 
address=&quot;10.132.2.71&quot; ip=&quot;10.132.2.71&quot; dir=&quot;/tmp&quot; name=&quot;es-internal&quot; 
&lt;BR&gt;NameTrans fn=document-root root=&quot;$docroot/hp/homepage&quot;&lt;BR&gt;Service 
method=&quot;(GET|HEAD|POST|PUT)&quot; type=&quot;text/jsp&quot; fn=&quot;wl_proxy&quot; 
WebLogicHost=&quot;10.132.7.199&quot; WebLogicPort=&quot;7001&quot;&lt;BR&gt;PathCheck 
fn=unix-uri-clean&lt;BR&gt;PathCheck fn=&quot;check-acl&quot; acl=&quot;default&quot;&lt;BR&gt;PathCheck 
fn=find-pathinfo&lt;BR&gt;PathCheck fn=find-index 
index-names=&quot;index.html,home.html&quot;&lt;BR&gt;ObjectType 
fn=type-by-extension&lt;BR&gt;ObjectType fn=force-type type=text/plain&lt;BR&gt;Service 
type=&quot;magnus-internal/jsp&quot; fn=&quot;NSServletService&quot;&lt;BR&gt;Service method=(GET|HEAD) 
type=magnus-internal/imagemap fn=imagemap&lt;BR&gt;Service method=(GET|HEAD) 
type=magnus-internal/directory fn=index-common&lt;B&gt;&lt;BR&gt;&lt;FONT color=#006699 
size=2&gt;Service method=&quot;(GET|HEAD)&quot; type=&quot;magnus-internal/directory&quot; 
fn=&quot;send-error&quot; 
path=&quot;/usr/iplanet/servers/docs/error.html&quot;&lt;/FONT&gt;&lt;/B&gt;&lt;BR&gt;Service 
method=(GET|HEAD|POST) type=*~magnus-internal/* fn=send-file&lt;BR&gt;Service 
method=&quot;(GET|HEAD|POST|PUT)&quot; type=&quot;text/do&quot; fn=&quot;wl-proxy&quot; 
WebLogicHost=&quot;10.132.1.199&quot; WebLogicPort=&quot;7001&quot;&lt;BR&gt;AddLog fn=flex-log 
name=&quot;access&quot;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;WAS가 죽었을경우 WebServer 에서 에러 페이지로 연결 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>프록시 플러그인을 사용하는 클러스터의 HTTP 로드 밸런싱 문제</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5819775"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5819775</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-28T23:32:53Z</updated>
	    <published>2005-12-28T23:32:53Z</published>
	    <content type="html">
	    	
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=5&gt;프록시 플러그인을 사용하는 클러스터의&lt;BR&gt;&lt;BR&gt;HTTP 로드 밸런싱 
문제&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=5&gt;프록시 플러그인을 사용하는 클러스터의&lt;BR&gt;&lt;BR&gt;HTTP 로드 밸런싱 
문제&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=right&gt;&lt;FONT size=2&gt;BEA Systems Korea&lt;/FONT&gt; &lt;SPAN 
style=&quot;FONT-SIZE: 10pt&quot;&gt;&lt;FONT face=Verdana&gt;[kr.bea.com]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=right&gt;&lt;FONT size=2&gt;J2eeSTUDY 편집&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;Trouble Shootings in WAS&lt;/B&gt;&lt;/FONT&gt; 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;B&gt;&lt;U&gt;문제 
설명&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;WebLogic 클러스터 노드 간에 HTTP 요청의 로드 밸런싱이 균등하지 않습니다. 즉, 
동일한 클러스터에 있는 노드들 중 일부가 다른 노드보다 더 많은 HTTP 요청을 받아 실행하고 있습니다. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;문제 발생 원인&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;클러스터의 HTTP 요청의 로드 불균형 문제는 다음과 같이 
볼 수 있습니다. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;HTTP 세션의 불규칙적인 분배로 인한 HTTP 요청 로드 불균형&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;프록시는 세션 쿠키 
없는 요청을 라운드 로빈(round robin) 로드 밸런싱 정책을 기반으로 클러스터에 전달하고 해당 노드에서 새로운 세션이 만들어집니다. 
이론적으로는 모든 클러스터 노드가 동일한 HTTP 세션 할당량을 받아야 합니다. 그렇지 않을 경우 &quot;sticky&quot; 로드 밸런싱 정책 때문에 
세션을 더 많이 가진 노드가 다른 노드보다 더 많은 요청을 받게 됩니다. 그 결과 클러스터 노드 간에 불균형한 로드 분배가 발생합니다. 
&lt;BR&gt;&lt;BR&gt;세션 쿠키 있는 요청은 항상 세션의 &quot;primary&quot; 서버 역할을 하는 노드로 전달됩니다. 이러한 현상을 sticky 로드 밸런싱 
또는 로드 밸런싱에 따른 session affinity라고 합니다. 로드 불균형 문제는 이러한 유형의 요청(역주: 이미 세션이 만들어져 
primary 서버에 sticky 된 상태)에는 적용되지 않습니다.&lt;BR&gt;&lt;BR&gt;세션 쿠키가 있는 요청의 경우 프록시 디버그 로그에 아래와 같은 
로그 항목이 표시됩니다.&lt;BR&gt;
&lt;TABLE width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;Mon May 10 13:14:40 2004 Parsing cookie 
JSESSIONID=Af48B06Xe6BvewE8yCNWKz62dsiu028qlO9GvkS41bg3n53RbJ2Z!-2032354160!-457294087 
&lt;BR&gt;Mon May 10 13:14:40 2004 getpreferredServersFromCookie: 
-2032354160!-457294087 &lt;BR&gt;Mon May 10 13:14:40 2004 Hdrs from 
Client:[cookie]=[JSESSIONID=Af48B06Xe6BvewE8yCNWKz62dsiu028qlO9GvkS41bg3n53RbJ2Z!-&lt;BR&gt;2032354160!-457294087] 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;플러그인은 정상(good) 상태(Status: OK)인 클러스터 노드들의 목록을 
&quot;General Server List&quot;라는 이름으로 메모리 내에 두고 관리합니다.플러그인은 세션 쿠키 없는 요청을 보낼 노드를 General 
Server List 에서 선택합니다. 문제가 없는 경우 General Server List는 해당 플러그인으로 구성된 Static List와 
동일합니다. &lt;BR&gt;&lt;BR&gt;아래 설명된 것처럼 어떤 경우에는 General Server List에 Static List의 일부만 포함하는 경우가 
있습니다. 이러한 상황이 발생하면 플러그인이 세션 쿠키 없는 요청을 전달할 수 있는 노드 수가 줄어드므로 HTTP 세션 배포가 불균일하게 
진행됩니다. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;General Server List&lt;/B&gt;에 영향을 미치는 요인 &lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
width=&quot;100%&quot;&gt;&lt;B&gt;a.&lt;/B&gt; 클러스터 노드의 응답 스트림에 포함된 X-WebLogic-Cluster-List HTTP 헤더 
&lt;BR&gt;&lt;BR&gt;
&lt;TABLE width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;&lt;B&gt;X-WebLogic-Cluster-List HTTP 헤더란? &lt;/B&gt;&lt;BR&gt;플러그인의 
요청을 처리하는 백 엔드 weblogic 서버는 응답 스트림의 HTTP 헤더 X-WebLogic-Request-ClusterInfo를 통해 해당 
시점에 파악된 살아 있는 클러스터 멤버들의 목록을 반환합니다. 이 헤더는 클러스터 목록이 변경된 경우에만 
반환됩니다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;반환된 클러스터 목록이 전체가 아닌 일부일 경우 플러그인의 General 
Server List 또한 전체 클러스터 목록의 일부 항목만 포함하게 됩니다. 백 엔드 클러스터 노드는 클러스터 뷰에서 노드가 사라질 경우 해당 
서버를 제외한 노드들의 목록을 반환합니다.&lt;BR&gt;이것이 바로 로드 밸런싱 문제의 가장 일반적인 원인입니다. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;b.&lt;/B&gt; 
플러그인이 클러스터 노드에서 처리된 요청을 가져오려고 할 때 즉, 클러스터 노드에 http 요청을 보내거나 클러스터 노드에서 응답을 읽을 때 
예외가 발생하는 경우 &lt;BR&gt;&lt;BR&gt;이 과정에서 예외가 발생하면 클러스터 노드는 bad로 표시되며 General Server List에서 
일시적으로 제외됩니다. &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;진단&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
width=&quot;100%&quot;&gt;&lt;B&gt;1.&lt;/B&gt; 추가 진단 데이터(역주: 플러그인 디버그 정보)를 생성하도록 프록시 플러그인을 구성합니다. 자세한 
내용은 프록시 플러그인 문제에 대한 &lt;A href=&quot;http://support.bea.com/support_news/product_troubleshooting/General_Diagnostic_Process_for_Problems_with_Proxy_Plug_in_Pattern.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;일반 
진단 프로세스&lt;/U&gt;&lt;/A&gt;를 참조하십시오.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;2.&lt;/B&gt; General Server List에 대한 프록시 정보를 살펴봅니다. 
&lt;BR&gt;&lt;BR&gt;목록에 Status: OK로 표시된 클러스터 노드가 모두 표시되지 않은 경우 General Server List에서 일부가 제외된 
것입니다. &lt;BR&gt;
&lt;TABLE width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;&lt;B&gt;원본 목록:&lt;/B&gt; &lt;BR&gt;General Server List: &lt;BR&gt;&lt;BR&gt;1. 
Host: '172.18.137.50' Port: 8001 Status: OK &lt;BR&gt;2. Host: '172.18.137.54' Port: 
8001 Status: OK &lt;BR&gt;&lt;BR&gt;&lt;B&gt;일부가 제외된 목록:&lt;/B&gt; &lt;BR&gt;General Server List: &lt;BR&gt;&lt;BR&gt;1. 
Host: '172.18.137.50' Port: 8001 Status: OK 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;B&gt;3.&lt;/B&gt;다음 단계에서는 (a), (b) 또는 두 가지 요인이 모두 문제의 원인인지 
확인합니다. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;a.&lt;/B&gt; 일부가 제외된 X-WebLogic-Cluster-List &lt;BR&gt;&lt;BR&gt;프록시 로그에서 
X-WebLogic-Cluster-List를 검색하고 백 엔드 클러스터 노드에서 잘린 목록이 반환된 시점을 확인합니다. 앞에 있는 동일한 요청의 
로그 항목을 참조하여 일부가 제외된 X-WebLogic-Cluster-List를 반환한 백 엔드 클러스터 노드를 확인합니다. &lt;BR&gt;
&lt;TABLE width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;&lt;B&gt;전체 클러스터 목록:&lt;/B&gt;&lt;BR&gt;Mon May 10 13:14:30 2004 Hdrs 
from WLS:[X-WebLogic-Cluster-Hash]=[sUuYnuyhFpkhw6ty&lt;BR&gt;44bkNczWnaA] &lt;BR&gt;Mon May 
10 13:14:30 2004 Hdrs from 
WLS:[X-WebLogic-Cluster-List]=[-2032354160!-1408071374!38625!-1|-457294087!-&lt;BR&gt;408071370!38625!-1]&lt;BR&gt;???? 
&lt;BR&gt;Mon May 10 13:14:30 2004 Parsing cluster list: 
-2032354160!-1408071374!38625!-1|-457294087!-1408071370!38625!-1 &lt;BR&gt;Mon May 10 
13:14:30 2004 Initializing lastIndex=0 for a list of length=2 &lt;BR&gt;Mon May 10 
13:14:30 2004 ### Got a new Server List of length 2 ### &lt;BR&gt;Mon May 10 13:14:30 
2004 ###Response### : Srvr# [1] = [172.18.137.50:38625:65535] &lt;BR&gt;Mon May 10 
13:14:30 2004 ###Response### : Srvr# [2] = [172.18.137.54:38625:65535] 
&lt;BR&gt;&lt;BR&gt;&lt;B&gt;일부가 제외된 클러스터 목록:&lt;/B&gt; &lt;BR&gt;Tue May 11 12:22:01 2004 Hdrs from 
WLS:[X-WebLogic-Cluster-Hash]=[O2ukNQEbMOLzU+R2026DpZaYVtI] &lt;BR&gt;Tue May 11 
12:22:01 2004 Hdrs from 
WLS:[X-WebLogic-Cluster-List]=[848189891!-1408071374!38625!-1] &lt;BR&gt;???? &lt;BR&gt;Tue 
May 11 12:22:01 2004 Parsing cluster list: 848189891!-1408071374!38625!-1 
&lt;BR&gt;Tue May 11 12:22:01 2004 Initializing lastIndex=0 for a list of length=1 
&lt;BR&gt;Tue May 11 12:22:01 2004 ### Got a new Server List of length 1 ### &lt;BR&gt;Tue 
May 11 12:22:01 2004 ###Response### : Srvr# [1] = [172.18.137.50:38625:65535] 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;B&gt;b. 요청(request)-응답(response) 예외&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;프록시 
정보 보기에서 &quot;Runtime statistics&quot; 아래의 &quot;Exception objects created&quot;를 찾습니다. 개수가 0보다 크면 
예외가 발생한 것입니다. &lt;BR&gt;프록시 로그에서 &quot;Exception&quot;을 찾습니다. &lt;BR&gt;
&lt;TABLE width=&quot;100%&quot; border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;&lt;B&gt;오류 발생 이후의 프록시 정보 보기:&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;requests: 6 
&lt;BR&gt;Exception objects created: 1 &lt;BR&gt;CONNECTION_REFUSED exceptions: 
1&lt;BR&gt;&lt;BR&gt;&lt;B&gt;프록시 로그의 해당 로그 항목:&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;Tue May 11 12:22:00 2004 attempt #0 out 
of a max of 5 &lt;BR&gt;Tue May 11 12:22:00 2004 trying connect to PRIMARY 
'172.18.137.54'/38625 /65535 at line 1138 for '/mywebapp/session.jsp' &lt;BR&gt;Tue 
May 11 12:22:00 2004 INFO: New NON-SSL URL &lt;BR&gt;Tue May 11 12:22:00 2004 
*******Exception type [CONNECTION_REFUSED] (172.18.137.54:38625 errno = 0) 
raised at line 1536 of URL.cpp 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;해결 방법&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
width=&quot;100%&quot;&gt;&lt;B&gt;a.&lt;/B&gt; X-WebLogic-Cluster-List에 일부가 제외된 목록을 반환하는 문제가 발견되면 응답을 
반환한 클러스터 노드를 확인한 후 해당 노드를 중점적으로 살펴봅니다. 이 문제는 주로 클러스터의 불안정으로 인한 멀티캐스트 오류 때문에 
발생합니다. 멀티캐스트 문제의 진단에 대해서는 &lt;A href=&quot;http://support.bea.com/support_news/product_troubleshooting/Multicast_Pattern.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;멀티캐스트 
오류&lt;/U&gt;&lt;/A&gt; 패턴을 참조하십시오. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;b.&lt;/B&gt; 프록시 정보 보기에 예외가 표시된 경우 발생한 예외 유형을 
확인하십시오. &lt;BR&gt;&lt;BR&gt;위의 요인들이 지속적으로 General Server List에 문제를 유발하여 근본적으로 해결기 어렵다면 항상 
General Server List가 최초 구성된 대로 클러스터 노드의 전체 목록(Static List)을 포함하도록 
DynamicServerList=&quot;OFF&quot;로 설정할 수 있습니다. 자세한 내용은 웹 서버 플러그인용 &lt;A 
href=&quot;http://edocs.bea.com/wls/docs81/plugins/plugin_params.html#1143055&quot;&gt;일반 매개 
변수&lt;/A&gt;(영문)를 참조하고 DynamicServerList에 대한 설명을 읽어보십시오. 먼저 DynamicServerList=&quot;OFF&quot; 
설정과 관련된 사항을 파악해야 합니다. &lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;외부 리소스&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot; 
width=&quot;100%&quot;&gt;
&lt;LI&gt;&lt;A 
href=&quot;http://edocs.bea.com/wls/docs81/plugins/plugin_params.html#1143055&quot;&gt;웹 서버 
플러그인용 일반 매개 변수(영문) &lt;/A&gt;
&lt;LI&gt;&lt;A href=&quot;http://edocs.bea.com/wls/docs81/plugins/nsapi.html#113454&quot;&gt;&lt;U&gt;플러그인의 
장애 조치 처리 방법(영문) &lt;/U&gt;&lt;/A&gt;&lt;/LI&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;추가 도움말이 필요하십니까?&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;패턴대로 작업했지만 추가 도움말이 필요한 경우 
다음과 같이 할 수 있습니다. &lt;BR&gt;&lt;BR&gt;1. &lt;A href=&quot;http://support.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;http://support.bea.com&lt;/U&gt;&lt;/A&gt;의 AskBEA에서 &quot;wtc 
outofmemoryerror&quot;로 문제를 조회하여 게시된 다른 해결 방법을 찾아봅니다. &lt;BR&gt;2. &lt;A href=&quot;http://newsgroups.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;http://newsgroups.bea.com&lt;/U&gt;&lt;/A&gt; 사이트에서 BEA 
뉴스그룹에 보다 자세한 내용을 질문합니다. &lt;BR&gt;&lt;BR&gt;이렇게 해도 문제를 해결할 수 없는 경우 유효한 유지보수 계약이 되어 있다면 &lt;A href=&quot;http://support.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;http://support.bea.com/&lt;/U&gt;&lt;/A&gt;에 로그인하여 Support 
Case를 신청할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;B&gt;&lt;U&gt;고객 
의견&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;이 지원 진단 패턴 &quot;WebLogic Tuxedo Connector의 메모리 부족 오류&quot;가 
도움이 되셨습니까? 여러분에게 꼭 필요한 정보나 &lt;A 
href=&quot;mailto:support.ke@bea.com?subject=Patterns%20Feedback:%20General%20Diagnostics%20Process%20for%20Problems%20with%20Proxy%20Plug-in&amp;body=&quot;&gt;&lt;U&gt;지원 
진단 패턴&lt;/U&gt;&lt;/A&gt;에 새로 추가하길 바라는 항목이 있으면 저희에게 알려주시기 바랍니다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT 
size=3&gt;&lt;B&gt;&lt;U&gt;책임의 한계에 대한 고지&lt;/U&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;BEA Systems, Inc.는 사용자와 BEA 
간의 유지 보수 및 지원 계약 내용에 따라 이 웹 사이트에 기술 팁과 패치를 제공합니다. BEA에서 허가한 소프트웨어와 함께 이 정보 및 코드를 
사용할 수 있지만 BEA는 기술 팁 및 패치와 관련하여 어떠한 명시적이거나 암시적인 보증도 하지 않습니다.&lt;BR&gt;&lt;BR&gt;이 문서에 참조된 상표는 
해당 소유자의 자산입니다. 자세한 상표 정보에 대해서는 제품 설명서를 참조하십시오.&lt;BR&gt;&lt;/P&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>Configuring Web Applications and Clusters for the Plug-in</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5819121"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5819121</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-28T23:03:33Z</updated>
	    <published>2005-12-28T23:03:33Z</published>
	    <content type="html">
	    	
&lt;DIV class=hide&gt;&lt;A title=&quot;Skip navigation&quot; accessKey=2 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#wrap&quot;&gt;Skip 
navigation&lt;/A&gt;.&lt;/DIV&gt;
&lt;SCRIPT language=Javascript1.1 type=text/javascript&gt;
GoogleURL();
&lt;/SCRIPT&gt;

&lt;FORM name=gs action=http://seeker.bea.com/search 
method=get&gt;&lt;NOSCRIPT&gt;This script outputs the google search URL required for search on edocs documentation.&lt;/NOSCRIPT&gt;
&lt;DIV id=header&gt;
&lt;DIV id=floater&gt;
&lt;DIV class=buttons&gt;&lt;A href=&quot;http://commerce.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Downloads&lt;/U&gt;&lt;/A&gt; 
&amp;nbsp;|&amp;nbsp; &lt;A href=&quot;http://edocs.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Product Documentation&lt;/U&gt;&lt;/A&gt; 
&amp;nbsp;|&amp;nbsp; &lt;A href=&quot;http://support.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Support&lt;/U&gt;&lt;/A&gt; &lt;/DIV&gt;
&lt;DIV class=searchbox&gt;&lt;LABEL for=Search&gt;&lt;/LABEL&gt;&lt;INPUT class=search id=Search 
onclick=&quot;this.value='';&quot; value=Search name=q&gt; &lt;INPUT 
style=&quot;VERTICAL-ALIGN: middle&quot; type=image alt=Search 
src=&quot;http://e-docs.bea.com/wls/docs81/images/whitearrow.gif&quot;&gt; &lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV id=headergraphic&gt;&lt;A href=&quot;http://www.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;IMG 
style=&quot;BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 98px; PADDING-TOP: 0px; HEIGHT: 85px; BORDER-RIGHT-WIDTH: 0px&quot; 
height=85 alt=&quot;BEA logo&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/header_logo.gif&quot; width=98 
align=left border=0&gt;&lt;/A&gt; &lt;IMG 
style=&quot;BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 701px; PADDING-TOP: 0px; HEIGHT: 85px; BORDER-RIGHT-WIDTH: 0px; align: right&quot; 
height=85 alt=&quot;Blue banner&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/header_right.gif&quot; width=701 
align=right border=0&gt;&lt;/DIV&gt;
&lt;DIV class=blueline&gt;&lt;IMG height=1 alt=&quot;&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/_.gif&quot; width=1&gt;&lt;/DIV&gt;
&lt;DIV id=graybar&gt;
&lt;DIV class=topnav&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#wrap&quot;&gt;&lt;/A&gt;&lt;A href=&quot;http://dev2dev.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;dev2dev 
Home&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href=&quot;http://dev2dev.bea.com/products/all.jsp&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Dev&amp;nbsp;Centers&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;A href=&quot;http://www.projects.dev2dev.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;CodeShare&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;A href=&quot;http://dev2dev.bea.com/community/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Community&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;A href=&quot;http://forums.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Newsgroups&lt;/U&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV class=twodots&gt;&lt;IMG height=1 alt=&quot;&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/_.gif&quot; width=1&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;SCRIPT language=Javascript1.1 type=text/javascript&gt;
GoogleSearchCollection();
&lt;/SCRIPT&gt;
&lt;INPUT type=hidden value=developer name=client&gt;&lt;INPUT type=hidden value=p 
name=filter&gt;&lt;INPUT type=hidden value=latin1 name=ie&gt;&lt;INPUT type=hidden 
value=lang_en name=lr&gt;&lt;INPUT type=hidden value=5 name=numgm&gt;&lt;INPUT type=hidden 
value=latin1 name=oe&gt;&lt;INPUT type=hidden value=xml_no_dtd name=output&gt;&lt;INPUT 
type=hidden value=developer name=proxystylesheet&gt;&lt;INPUT type=hidden value=edocs 
name=site&gt;&lt;INPUT type=hidden value=e-docs.bea.com/wls/docs81 
name=sitesearch&gt;&lt;INPUT type=hidden value=edocs 
name=source&gt;&lt;/FORM&gt;&lt;NOSCRIPT&gt;This script outputs the google search parameters required for search on edocs documentation.&lt;/NOSCRIPT&gt;&lt;!-- page contents --&gt;&lt;!-- breadcrumbs --&gt;
&lt;P class=breadcrumb&gt;&lt;A href=&quot;http://edocs.bea.com/&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;eDocs Home&lt;/U&gt;&lt;/A&gt; &gt; 
&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/index.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;BEA WebLogic Server 8.1 
Documentation&lt;/U&gt;&lt;/A&gt; &gt; &lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/index.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Using Web Server 
Plug-Ins with WebLogic Server&lt;/U&gt;&lt;/A&gt; &gt; Parameters for Web Server Plug-Ins 
&lt;/P&gt;&lt;!-- breadcrumbs END --&gt;&lt;A name=wrap&gt;&lt;/A&gt;
&lt;DIV id=wrap&gt;&lt;!-- page title --&gt;
&lt;P class=booktitle&gt;Using Web Server Plug-Ins with WebLogic Server&lt;/P&gt;&lt;!-- page title end --&gt;&lt;!-- Doc Nav --&gt;
&lt;TABLE cellSpacing=0 cellPadding=6 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/http_proxy.html&quot; target=&quot;_blank&quot;&gt;&lt;IMG 
title=Previous height=44 alt=Previous 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_prev.gif&quot; width=35 
border=0&gt;&lt;/A&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;IMG title=Next height=44 alt=Next 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_next_grey1.gif&quot; width=44 
border=0&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;IMG height=44 
alt=&quot;vertical dots separating previous/next from contents/index/pdf&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_dots.gif&quot; width=5 
border=0&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;A onblur=&quot;window.status=''; return true&quot; 
onmouseover=&quot;window.status='Table of Contents'; return true&quot; 
title=&quot;Open TOC in new window&quot; 
onfocus=&quot;window.status='Table of Contents'; return true&quot; 
onmouseout=&quot;window.status=''; return true&quot; 
href=&quot;javascript:OpenWindowToc();&quot;&gt;&lt;IMG title=Contents height=44 alt=Contents 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_contents.gif&quot; width=52 
border=0&gt;&lt;/A&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;A onblur=&quot;window.status=''; return true&quot; 
onmouseover=&quot;window.status='Index'; return true&quot; 
title=&quot;Open Index in a new window&quot; onfocus=&quot;window.status='Index'; return true&quot; 
onmouseout=&quot;window.status=''; return true&quot; 
href=&quot;javascript:OpenWindowIndex();&quot;&gt;&lt;IMG title=Index height=44 alt=Index 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_index.gif&quot; width=34 
border=0&gt;&lt;/A&gt; &lt;/TD&gt;
&lt;TD&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/pdf/plugins.pdf&quot; target=pdf&gt;&lt;IMG 
title=&quot;View as PDF&quot; height=44 alt=&quot;View as PDF&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/doc_nav_pdf.gif&quot; width=59 
border=0&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&lt;A href=&quot;http://www.adobe.com/products/acrobat/alternate.html&quot; 
target=_blank&gt;&lt;IMG title=&quot;Get Adobe Reader&quot; height=44 alt=&quot;Get Adobe Reader&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/get_reader.gif&quot; width=52 
border=0&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;!-- Doc Nav End --&gt;&lt;!-- CONTENT --&gt;
&lt;H1 class=chaphead&gt;&lt;A name=1149781&gt;&lt;/A&gt;Parameters for Web Server Plug-Ins&lt;/H1&gt;
&lt;P&gt;&lt;A name=1143035&gt;&lt;/A&gt;The following sections describe the parameters that you 
use to configure the Apache, Netscape, and Microsoft IIS Web server 
plug-ins:&lt;/P&gt;
&lt;UL type=square&gt;
&lt;LI type=square&gt;&lt;A name=1143039&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1143049&quot;&gt;Entering 
Parameters in Web Server Plug-In Configuration Files&lt;/A&gt; 
&lt;LI type=square&gt;&lt;A name=1143043&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1143055&quot;&gt;General 
Parameters for Web Server Plug-Ins&lt;/A&gt; 
&lt;LI type=square&gt;&lt;A name=1143047&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1143241&quot;&gt;SSL 
Parameters for Web Server Plug-Ins&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR noShade&gt;

&lt;H1 class=head1&gt;&lt;A name=1143049&gt;&lt;/A&gt;Entering Parameters in Web Server Plug-In 
Configuration Files&lt;/H1&gt;
&lt;P&gt;&lt;A name=1143050&gt;&lt;/A&gt;You enter the parameters for each Web server plug-in in 
special configuration files. Each Web server has a different name for this 
configuration file and different rules for formatting the file. For details, see 
the following sections on each plug-in:&lt;/P&gt;
&lt;UL type=square&gt;
&lt;LI type=square&gt;&lt;A name=1143051&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/apache.html#120648&quot;&gt;&lt;U&gt;Installing 
and Configuring the Apache HTTP Server Plug-In&lt;/U&gt;&lt;/A&gt; 
&lt;LI type=square&gt;&lt;A name=1143052&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/isapi.html#113486&quot;&gt;&lt;U&gt;Installing 
and Configuring the Microsoft IIS Plug-In&lt;/U&gt;&lt;/A&gt; 
&lt;LI type=square&gt;&lt;A name=1143053&gt;&lt;/A&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/nsapi.html#110496&quot;&gt;&lt;U&gt;Installing 
and Configuring the Netscape Enterprise Server Plug-In&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR noShade&gt;

&lt;H1 class=head1&gt;&lt;A name=1143055&gt;&lt;/A&gt;General Parameters for Web Server 
Plug-Ins&lt;/H1&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A name=1146894&gt;&lt;/A&gt;Note: &lt;/STRONG&gt;Parameters are case 
sensitive.&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt; 
&lt;DIV class=tblmargin&gt;
&lt;TABLE cellSpacing=0 borderColorDark=#000000 cellPadding=3 
borderColorLight=#ffffff border=1&gt;
&lt;P class=tabletitle&gt;&lt;A name=1152909&gt;&lt;/A&gt;Table 6-1 Plug-In Parameters 
&lt;P&gt;&lt;/P&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#cccccc&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1143591&gt;&lt;/A&gt;Parameter&lt;/P&gt;&lt;/TH&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1143593&gt;&lt;/A&gt;Default &lt;/P&gt;&lt;/TH&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1143595&gt;&lt;/A&gt;Description&lt;/P&gt;&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154541&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectRetrySecs&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154543&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;2&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154545&gt;&lt;/A&gt;Interval in seconds that the plug-in should 
sleep between attempts to connect to the WebLogic Server host. Make this number 
less than the &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectTimeoutSecs&lt;/CODE&gt;. The 
number of times the plug-in tries to connect before returning an &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;HTTP 503/Service Unavailable&lt;/CODE&gt; response to the 
client is calculated by dividing &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154527&quot;&gt;ConnectTimeoutSecs&lt;/A&gt; 
by &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectRetrySecs&lt;/CODE&gt;. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154549&gt;&lt;/A&gt;To specify no retries, set &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectRetrySecs&lt;/CODE&gt; equal to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectTimeoutSecs&lt;/CODE&gt;. However, the plug-in 
attempts to connect at least twice.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154553&gt;&lt;/A&gt;You can customize the error response by using 
the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154441&quot;&gt;ErrorPage&lt;/A&gt; 
parameter.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154527&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectTimeoutSecs&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154529&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;10&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154531&gt;&lt;/A&gt;Maximum time in seconds that the plug-in 
should attempt to connect to the WebLogic Server host. Make the value greater 
than &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154541&quot;&gt;ConnectRetrySecs&lt;/A&gt;. 
If &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectTimeoutSecs&lt;/CODE&gt; expires without 
a successful connection, even after the appropriate retries (see &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ConnectRetrySecs&lt;/CODE&gt;), an &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;HTTP 503/Service Unavailable&lt;/CODE&gt; response is 
sent to the client. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154538&gt;&lt;/A&gt;You can customize the error response by using 
the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154441&quot;&gt;ErrorPage&lt;/A&gt; 
parameter.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154516&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;CookieName&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154518&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;JSESSIONID&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154520&gt;&lt;/A&gt;If you change the name of the WebLogic Server 
session cookie in the WebLogic Server Web application, you need to change the 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;CookieName&lt;/CODE&gt; parameter in the plug-in to 
the same value. The name of the WebLogic session cookie is set in the 
WebLogic-specific deployment descriptor, in the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/webapp/weblogic_xml.html#session-descriptor&quot;&gt;&lt;U&gt;&lt;session-descriptor&gt;&lt;/U&gt;&lt;/A&gt; 
element.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154491&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;Debug&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154493&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;False&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154495&gt;&lt;/A&gt;Sets the type of logging performed for 
debugging operations. The debugging information is written to the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;/tmp/wlproxy.log&lt;/CODE&gt; file on UNIX systems and 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;c:\TEMP\wlproxy.log&lt;/CODE&gt; on Windows NT/2000 
systems. Override this location and filename by setting the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154747&quot;&gt;WLLogFile&lt;/A&gt; 
parameter to a different directory and file. Ensure that the tmp or TEMP 
directory has write permission assigned to the user who is logged in to the 
server. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155236&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;True&lt;/CODE&gt;&lt;/P&gt;
&lt;DL&gt;
&lt;DL&gt;
&lt;DD&gt;
&lt;P class=defpara&gt;&lt;A name=1154500&gt;&lt;/A&gt;The plug-in logs informational and error 
messages.&lt;/P&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DL&gt;
&lt;DL&gt;
&lt;DD&gt;
&lt;P class=defterm&gt;&lt;A name=1154501&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;False&lt;/CODE&gt;&lt;/P&gt;
&lt;DL&gt;
&lt;DD&gt;
&lt;P class=defpara&gt;&lt;A name=1154502&gt;&lt;/A&gt;No debugging information is 
logged.&lt;/P&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154482&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;DebugConfigInfo&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154484&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154486&gt;&lt;/A&gt;Enables the special query parameter &quot;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;__WebLogicBridgeConfig&lt;/CODE&gt;&quot;. Use it to get 
details about configuration parameters from the plug-in.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154487&gt;&lt;/A&gt;For example, if you enable &quot;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;__WebLogicBridgeConfig&lt;/CODE&gt;&quot; by setting &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;DebugConfigInfo&lt;/CODE&gt; and then send a request that 
includes the query string &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;?__WebLogicBridgeConfig&lt;/CODE&gt;, then the plug-in 
gathers the configuration information and run-time statistics and returns the 
information to the browser. The plug-in does not connect to WebLogic Server in 
this case. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154488&gt;&lt;/A&gt;This parameter is strictly for debugging and 
the format of the output message can change with releases. For security 
purposes, keep this parameter turned OFF in production systems. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154462&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;DefaultFileName&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154464&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154466&gt;&lt;/A&gt;If the URI is &quot;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;/&lt;/CODE&gt;&quot; then the plug-in performs the following 
steps:&lt;/P&gt;
&lt;OL class=smallindent&gt;
&lt;P class=table&gt;&lt;A name=1154470&gt;&lt;/A&gt;1. Trims the path specified with the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154565&quot;&gt;PathTrim&lt;/A&gt; 
parameter.&lt;/P&gt;&lt;/OL&gt;
&lt;OL class=smallindent&gt;
&lt;P class=table&gt;&lt;A name=1154471&gt;&lt;/A&gt;2. Appends the value of &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;DefaultFileName&lt;/CODE&gt;.&lt;/P&gt;&lt;/OL&gt;
&lt;OL class=smallindent&gt;
&lt;P class=table&gt;&lt;A name=1154475&gt;&lt;/A&gt;3. Prepends the value specified with &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154579&quot;&gt;PathPrepend&lt;/A&gt;.&lt;/P&gt;&lt;/OL&gt;
&lt;P class=table&gt;&lt;A name=1154476&gt;&lt;/A&gt;This procedure prevents redirects from 
WebLogic Server.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154477&gt;&lt;/A&gt;Set the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;DefaultFileName&lt;/CODE&gt; to the default welcome page 
of the Web Application in WebLogic Server to which requests are being proxied. 
For example, If the &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;DefaultFileName&lt;/CODE&gt; is 
set to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;welcome.html&lt;/CODE&gt;, an HTTP request 
like &quot;&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;http://somehost/weblogic&lt;/CODE&gt;&quot; 
becomes &quot;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;http://somehost/weblogic/welcome.html&lt;/CODE&gt;&quot;. For 
this parameter to function, the same file must be specified as a welcome file in 
all the Web Applications to which requests are directed. For more information, 
see &quot;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/webapp/components.html#welcome_pages&quot;&gt;&lt;U&gt;Configuring 
Welcome Pages&lt;/U&gt;&lt;/A&gt;&quot;.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154479&gt;&lt;/A&gt;Note for Apache users: If you are using 
Stronghold or Raven versions, define this parameter inside of a &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;Location&lt;/CODE&gt; block, and not in an &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;IfModule&lt;/CODE&gt; block.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154449&gt;&lt;/A&gt;&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;&lt;A 
name=DynamicServerList&gt;&lt;/A&gt;DynamicServerList&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154451&gt;&lt;/A&gt;ON&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154453&gt;&lt;/A&gt;When set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;, the plug-in ignores the dynamic cluster 
list used for load balancing requests proxied from the plug-in and only uses the 
static list specified with the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154673&quot;&gt;WebLogicCluster&lt;/A&gt; 
parameter. Normally this parameter should remain set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154457&gt;&lt;/A&gt;There are some implications for setting this 
parameter to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;:&lt;/P&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154458&gt;&lt;/A&gt;If one or more servers in the static list 
fails, the plug-in could waste time trying to connect to a dead server, 
resulting in decreased performance.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154459&gt;&lt;/A&gt;If you add a new server to the cluster, the 
plug-in cannot proxy requests to the new server unless you redefine this 
parameter. WebLogic Server automatically adds new servers to the dynamic server 
list when they become part of the cluster.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154441&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ErrorPage&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154443&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154445&gt;&lt;/A&gt;You can create your own error page that is 
displayed when your Web server is unable to forward requests to WebLogic Server. 
&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154433&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;FileCaching&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154435&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1155146&gt;&lt;/A&gt;When set to ON, and the size of the POST data 
in a request is greater than 2048 bytes, the POST data is first read into a 
temporary file on disk and then forwarded to the WebLogic Server in chunks of 
8192 bytes. This preserves the POST data during failover, allowing all necessary 
data to be repeated to the secondary if the primary goes down.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155147&gt;&lt;/A&gt;Note that when FileCaching is ON, any client 
that tracks the progress of the POST will see that the transfer has completed 
even though the data is still being transferred between the WebServer and 
WebLogic. So, if you want the progress bar displayed by a browser during the 
upload to reflect when the data is actually available on the WebLogic Server, 
you might not want to have FileCaching ON.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155148&gt;&lt;/A&gt;When set to OFF and the size of the POST data 
in a request is greater than 2048 bytes, the reading of the POST data is 
postponed until a WebLogic Server cluster member is identified to serve the 
request. Then the Plugin reads and immediately sends the POST data to the 
WebLogic Server in chunks of 8192 bytes.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155149&gt;&lt;/A&gt;Note that turning FileCaching OFF limits 
failover. If the WebLogic Server primary server goes down while processing the 
request, the POST data already sent to the primary cannot be repeated to the 
secondary.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154438&gt;&lt;/A&gt;Finally, regardless of how FileCaching is 
set, if the size of the POST data is 2048 bytes or less the plugin will read the 
data into memory and use it if needed during failover to repeat to the 
secondary.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154425&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;FilterPriorityLevel&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154426&gt;&lt;/A&gt;(Microsoft Internet Information Server 
only)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154428&gt;&lt;/A&gt;2&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154430&gt;&lt;/A&gt;The values for this parameter are 0 (low), 1 
(medium), and 2 (high). The default value is 2. This priority should be put in 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;iisforward.ini&lt;/CODE&gt; file. This property is 
used to set the priority level for the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;iisforward.dll&lt;/CODE&gt; filter in IIS. Priority level 
is used by IIS to decide which filter will be invoked first, in case multiple 
filters match the incoming request. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154415&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;Idempotent&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154417&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154419&gt;&lt;/A&gt;When set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; and if the servers do not respond within 
&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154766&quot;&gt;WLIOTimeoutSecs 
(new name for HungServerRecoverSecs)&lt;/A&gt;, the plug-ins fail over. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154423&gt;&lt;/A&gt;If set to &quot;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;&quot; the plug-ins do not fail over. If you 
are using the Netscape Enterprise Server Plug-In, or Apache HTTP Server you can 
set this parameter differently for different URLs or MIME types.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154407&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;KeepAlive&lt;A name=keepalive&gt;&lt;/A&gt;Enabled&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154408&gt;&lt;/A&gt;(Does not apply to Apache HTTP Server version 
1.3.x)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154938&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;true&lt;/CODE&gt; (Netscape and Microsoft IIS 
plug-ins)&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154939&gt;&lt;/A&gt;&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; 
(Apache plug-in)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154949&gt;&lt;/A&gt;Enables pooling of connections between the 
plug-in and WebLogic Server.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154950&gt;&lt;/A&gt;Valid values for the Netscape and Microsoft 
IIS plug-ins are &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;true&lt;/CODE&gt; and &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;false&lt;/CODE&gt;.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154951&gt;&lt;/A&gt;Valid values for the Apache plug-in are &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; and &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154556&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;KeepAliveSecs&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154557&gt;&lt;/A&gt;(Does not apply to Apache HTTP Server version 
1.3.x)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154559&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;20&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154561&gt;&lt;/A&gt;The length of time after which an inactive 
connection between the plug-in and WebLogic Server is closed. You must set &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;KeepAliveEnabled&lt;/CODE&gt; to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;true&lt;/CODE&gt; (&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; when using the Apache plug-in) for this 
parameter to be effective.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154562&gt;&lt;/A&gt;The value of this parameter must be less than 
or equal to the value of the Duration field set in the Administration Console on 
the Server/HTTP tab, or the value set on the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;server&lt;/CODE&gt; Mbean with the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;KeepAliveSecs&lt;/CODE&gt; attribute.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154609&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MatchExpression&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154610&gt;&lt;/A&gt;(Apache HTTP Server only)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154612&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154614&gt;&lt;/A&gt;When proxying by MIME type, set the filename 
pattern inside of an &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;IfModule&lt;/CODE&gt; block 
using the &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;MatchExpression&lt;/CODE&gt; parameter. 
&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154615&gt;&lt;/A&gt;Example when proxying by MIME type:&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154616&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;&lt;IfModule mod_weblogic.c&gt;&lt;BR&gt;MatchExpression 
*.jsp 
&amp;nbsp;&amp;nbsp;&amp;nbsp;WebLogicHost=myHost|paramName=value&lt;BR&gt;&lt;/IfModule&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154617&gt;&lt;/A&gt;Example when proxying by path:&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154618&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;&lt;IfModule mod_weblogic.c&gt;&lt;BR&gt;MatchExpression 
/weblogic 
&amp;nbsp;&amp;nbsp;&amp;nbsp;WebLogicHost=myHost|paramName=value&lt;BR&gt;&lt;/IfModule&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155191&gt;&lt;/A&gt;It is possible to define a new parameter for 
MatchExpression using the following syntax:&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155192&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MatchExpression *.jsp PathPrepend=/test 
PathTrim=/foo&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154602&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MaxPostSize&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154604&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;-1&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154606&gt;&lt;/A&gt;Maximum allowable size of POST data, in 
bytes. If the content-length exceeds &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MaxPostSize&lt;/CODE&gt;, the plug-in returns an error 
message. If set to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;-1&lt;/CODE&gt;, the size of 
POST data is not checked. This is useful for preventing denial-of-service 
attacks that attempt to overload the server with POST data.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154589&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MaxSkipTime&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154590&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154592&gt;&lt;/A&gt;10&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154594&gt;&lt;/A&gt;If a WebLogic Server instance listed in 
either the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154673&quot;&gt;WebLogicCluster&lt;/A&gt; 
parameter or a dynamic cluster list returned from WebLogic Server fails, the 
failed server is marked as &quot;bad&quot; and the plug-in attempts to connect to the next 
server in the list.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154599&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;MaxSkipTime&lt;/CODE&gt; sets the amount of time after 
which the plug-in will retry the server marked as &quot;bad.&quot; The plug-in attempts to 
connect to a new server in the list each time a unique request is received (that 
is, a request without a cookie).&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154579&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;PathPrepend&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154581&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;null&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154583&gt;&lt;/A&gt;String that the plug-in prepends to the 
beginning of the original URL, after &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154565&quot;&gt;PathTrim&lt;/A&gt; 
is trimmed and before the request is forwarded to WebLogic Server.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154565&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;PathTrim&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154567&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;null&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154569&gt;&lt;/A&gt;String trimmed by the plug-in from the 
beginning of the original URL, before the request is forwarded to WebLogic 
Server. For example, if the URL&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154570&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;http://myWeb.server.com/weblogic/foo&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154571&gt;&lt;/A&gt;is passed to the plug-in for parsing and if 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;PathTrim&lt;/CODE&gt; has been set to strip off 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;/weblogic&lt;/CODE&gt; before handing the URL to 
WebLogic Server, the URL forwarded to WebLogic Server is: &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154572&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;http://myWeb.server.com:7001/foo&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154573&gt;&lt;/A&gt;Note that if you are newly converting an 
existing third-party server to proxy requests to WebLogic Server using the 
plug-in, you will need to change application paths to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;/foo&lt;/CODE&gt; to include &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;weblogic/foo&lt;/CODE&gt;. You can use &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;PathTrim&lt;/CODE&gt; and &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154579&quot;&gt;PathPrepend&lt;/A&gt; 
in combination to change this path.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154621&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;QueryFromRequest&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154622&gt;&lt;/A&gt;(Apache HTTP Server only)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154624&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154626&gt;&lt;/A&gt;When set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;, specifies that the Apache plug-in use 
&lt;BR&gt;&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;(request_rec *)r-&gt;the request&lt;/CODE&gt; 
&lt;BR&gt;to pass the query string to WebLogic Server. (For more information, see your 
Apache documentation.) This behavior is desirable in the following 
situations:&lt;/P&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154627&gt;&lt;/A&gt;When a Netscape version 4.x browser makes 
requests that contain spaces in the query string&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154628&gt;&lt;/A&gt;If you are using Raven Apache 1.5.2 on 
HP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=table&gt;&lt;A name=1154629&gt;&lt;/A&gt;When set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;, the Apache plug-in uses&lt;BR&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;(request_rec *)r-&gt;args&lt;/CODE&gt; to pass the query 
string to WebLogic Server.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154699&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;StatPath&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154700&gt;&lt;/A&gt;(Not available for the Microsoft Internet 
Information Server Plug-In)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154702&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;false&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154704&gt;&lt;/A&gt;If set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;true&lt;/CODE&gt;, the plug-in checks the existence and 
permissions of the translated path (&quot;Proxy-Path-Translated&quot;) of the request 
before forwarding the request to WebLogic Server.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154705&gt;&lt;/A&gt;If the file does not exist, an &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;HTTP 404 File Not Found&lt;/CODE&gt; response is returned 
to the client. If the file exists but is not world-readable, an &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;HTTP 403/Forbidden&lt;/CODE&gt; response is returned to 
the client. In either case, the default mechanism for the Web server to handle 
these responses fulfills the body of the response. This option is useful if both 
the WebLogic Server Web Application and the Web Server have the same document 
root. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154709&gt;&lt;/A&gt;You can customize the error response by using 
the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154441&quot;&gt;ErrorPage&lt;/A&gt; 
parameter.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154673&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicCluster&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154674&gt;&lt;/A&gt;(Required when proxying to a cluster of 
WebLogic Servers, or to multiple non-clustered servers.)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154676&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154678&gt;&lt;/A&gt;List of WebLogic Servers that can be used for 
load balancing. The server or cluster list is a list of host:port entries. If a 
mixed set of clusters and unclustered servers is specified, the dynamic list 
returned for this parameter will return only the clustered servers.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154679&gt;&lt;/A&gt;The method of specifying the parameter, and 
the required format vary by plug-in. See the examples in:&lt;/P&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154681&gt;&lt;/A&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/nsapi.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Installing and 
Configuring the Netscape Enterprise Server Plug-In (NSAPI)&lt;/U&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154683&gt;&lt;/A&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/isapi.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Installing and 
Configuring the Microsoft Internet Information Server (ISAPI) 
Plug-In&lt;/U&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154685&gt;&lt;/A&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/apache.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Installing and 
Configuring the Apache HTTP Server Plug-In&lt;/U&gt;&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=table&gt;&lt;A name=1154686&gt;&lt;/A&gt;If you are using SSL between the plug-in and 
WebLogic Server, set the port number to the SSL listen port (see &lt;A href=&quot;http://e-docs.bea.com/wls/docs81/secmanage/ssl.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Configuring the 
SSL Protocol&lt;/U&gt;&lt;/A&gt;) and set the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1144845&quot;&gt;SecureProxy&lt;/A&gt; 
parameter to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154691&gt;&lt;/A&gt;The plug-in does a simple round-robin between 
all available servers. The server list specified in this property is a starting 
point for the dynamic server list that the server and plug-in maintain. WebLogic 
Server and the plug-in work together to update the server list automatically 
with new, failed, and recovered cluster members.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154692&gt;&lt;/A&gt;You can disable the use of the dynamic 
cluster list by setting the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154449&quot;&gt;DynamicServerList&lt;/A&gt; 
parameter to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt; &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154696&gt;&lt;/A&gt;The plug-in directs HTTP requests containing 
a cookie, URL-encoded session, or a session stored in the POST data to the 
server in the cluster that originally created the cookie. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154663&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicHost&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154664&gt;&lt;/A&gt;(Required when proxying to a single WebLogic 
Server.) &lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154666&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154668&gt;&lt;/A&gt;WebLogic Server host (or virtual host name as 
defined in WebLogic Server) to which HTTP requests should be forwarded.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154669&gt;&lt;/A&gt;If you are using a WebLogic cluster, use the 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicCluster&lt;/CODE&gt; parameter instead of 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicHost&lt;/CODE&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154646&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicPort&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154647&gt;&lt;/A&gt;(Required when proxying to a single WebLogic 
Server instance.)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154649&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154651&gt;&lt;/A&gt;Port at which the WebLogic Server host is 
listening for connection requests from the plug-in (or from other servers). (If 
you are using SSL between the plug-in and WebLogic Server, set this parameter to 
the SSL listen port (see &lt;A href=&quot;http://e-docs.bea.com/wls/docs81/secmanage/ssl.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Configuring the 
SSL Protocol&lt;/U&gt;&lt;/A&gt;) and set the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1144845&quot;&gt;SecureProxy&lt;/A&gt; 
parameter to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;).&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154656&gt;&lt;/A&gt;If you are using a WebLogic Cluster, use the 
&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154673&quot;&gt;WebLogicCluster&lt;/A&gt; 
parameter instead of &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WebLogicPort&lt;/CODE&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154637&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLDNSRefreshInterval&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154639&gt;&lt;/A&gt;0 (Lookup once, during startup)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154641&gt;&lt;/A&gt;Only applies to NSAPI and Apache.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1155038&gt;&lt;/A&gt;If defined in the proxy configuration, 
specifies number of seconds interval at which WebLogic Server refreshes DNS name 
to IP mapping for a server. This can be used in the event that a WebLogic Server 
instance is migrated to a different IP address, but the DNS name for that 
server's IP remains the same. In this case, at the specified refresh interval 
the DNS&lt;-&gt;IP mapping will be updated.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154631&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLExcludePathOrMimeType&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154633&gt;&lt;/A&gt;none&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154635&gt;&lt;/A&gt;This parameter allows you to exclude certain 
requests, specified by path or MIME type, from proxying.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154965&gt;&lt;/A&gt;This parameter can be defined locally at the 
Location tag level as well as globally. When the property is defined locally, it 
does not override the global property but defines a union of the two 
parameters.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154712&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WlForwardPath&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154713&gt;&lt;/A&gt;(Microsoft Internet Information Server 
only)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154715&gt;&lt;/A&gt;null&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154717&gt;&lt;/A&gt;If &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WlForwardPath&lt;/CODE&gt; is set to &quot;/&quot; all requests are 
proxied. To forward any requests starting with a particular string, set &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WlForwardPath&lt;/CODE&gt; to the string. For example, 
setting &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;WlForwardPath&lt;/CODE&gt; to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;/weblogic&lt;/CODE&gt; forwards all requests starting 
with &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;/weblogic&lt;/CODE&gt; to Weblogic Server.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154718&gt;&lt;/A&gt;This parameter is required if you are 
proxying by path. You can set multiple strings by separating the strings with 
commas. For example: &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WlForwardPath=/weblogic,/bea&lt;/CODE&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154766&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLIOTimeoutSecs (new name for&lt;/CODE&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt; HungServerRecoverSecs)&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154769&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;300&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154771&gt;&lt;/A&gt;Defines the amount of time the plug-in waits 
for a response to a request from WebLogic Server. The plug-in waits for &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;HungServerRecoverSecs&lt;/CODE&gt; for the server to 
respond and then declares that server dead, and fails over to the next server. 
The value should be set to a very large value. If the value is less than the 
time the servlets take to process, then you may see unexpected results. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154772&gt;&lt;/A&gt;Minimum value: &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;10&lt;BR&gt;&lt;/CODE&gt;Maximum value: &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;Unlimited&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154759&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLLocalIP&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154761&gt;&lt;/A&gt;none&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154763&gt;&lt;/A&gt;Defines the IP address to bind to when the 
plug-in connects to a WebLogic Server instance running on a multihomed 
machine.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154764&gt;&lt;/A&gt;If &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLLocalIP&lt;/CODE&gt; is not set, a random IP address on 
the multi-homed machine is used.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154747&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLLogFile&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154749&gt;&lt;/A&gt;See the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154491&quot;&gt;Debug&lt;/A&gt; 
parameter&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154754&gt;&lt;/A&gt;Specifies path and file name for the log file 
that is generated when the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154491&quot;&gt;Debug&lt;/A&gt; 
parameter is set to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;. You must 
create this directory before setting this parameter.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154737&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLProxySSL&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154739&gt;&lt;/A&gt;OFF&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154741&gt;&lt;/A&gt;Set this parameter to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; to maintain SSL communication between the 
plug-in and WebLogic Server when the following conditions exist:&lt;/P&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154742&gt;&lt;/A&gt;An HTTP client request specifies the HTTPS 
protocol &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154743&gt;&lt;/A&gt;The request is passed through one or more 
proxy servers (including the WebLogic Server proxy plug-ins)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1154744&gt;&lt;/A&gt;The connection between the plug-in and 
WebLogic Server uses the HTTP protocol&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=table&gt;&lt;A name=1154745&gt;&lt;/A&gt;When &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLProxySSL&lt;/CODE&gt; is set to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON,&lt;/CODE&gt; the location header returned to the 
client from WebLogic Server specifies the HTTPS protocol.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154731&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLSocketTimeoutSecs&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154733&gt;&lt;/A&gt;2 (must be greater than 0)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154735&gt;&lt;/A&gt;Set the timeout for the socket while 
connecting, in seconds. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154720&gt;&lt;/A&gt;WLTempDir&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154722&gt;&lt;/A&gt;See the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1154491&quot;&gt;Debug&lt;/A&gt; 
parameter&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1154727&gt;&lt;/A&gt;Specifies the directory where a &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;wlproxy.log&lt;/CODE&gt; will be created. If the location 
fails, the Plug-In resorts to creating the log file under &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;C:/temp&lt;/CODE&gt; in Windows and &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;/tmp&lt;/CODE&gt; in all Unix platforms.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154728&gt;&lt;/A&gt;Also specifies the location of the &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;_wl_proxy&lt;/CODE&gt; directory for post data files. 
&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154729&gt;&lt;/A&gt;When both &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLTempDir&lt;/CODE&gt; and &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLLogFile&lt;/CODE&gt; are set, &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLLogFile&lt;/CODE&gt; will override as to the location 
of &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;wlproxy.log&lt;/CODE&gt;. &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WLTempDir&lt;/CODE&gt; will still determine the location 
of &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;_wl_proxy&lt;/CODE&gt; directory.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;P&gt;&lt;/P&gt;&lt;/P&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/CODE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR noShade&gt;

&lt;H1 class=head1&gt;&lt;A name=1143241&gt;&lt;/A&gt;SSL Parameters for Web Server Plug-Ins&lt;/H1&gt;
&lt;P&gt;&lt;A name=1151624&gt;&lt;/A&gt;Server Gated Cryptography certificates are not supported 
for use with WebLogic Server Proxy Plug-Ins. Non-SGC certificates work 
appropriately and allow SSL communication between WebLogic Server and the 
plug-in.&lt;/P&gt;
&lt;P&gt;&lt;A name=1146907&gt;&lt;/A&gt;Parameters are case sensitive.&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt; 
&lt;DIV class=tblmargin&gt;
&lt;TABLE cellSpacing=0 borderColorDark=#000000 cellPadding=3 
borderColorLight=#ffffff border=1&gt;
&lt;P class=tabletitle&gt;&lt;A name=1152899&gt;&lt;/A&gt;Table 6-2 SSL Parameters for Web Server 
Plug-Ins 
&lt;P&gt;&lt;/P&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#cccccc&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1144839&gt;&lt;/A&gt;Parameter&lt;/P&gt;&lt;/TH&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1144841&gt;&lt;/A&gt;Default &lt;/P&gt;&lt;/TH&gt;
&lt;TH vAlign=top scope=col align=left&gt;
&lt;P class=cellheading&gt;&lt;A name=1144843&gt;&lt;/A&gt;Description&lt;/P&gt;&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1151546&gt;&lt;/A&gt;EnforceBasicConstraints&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1151548&gt;&lt;/A&gt;Strong&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1151550&gt;&lt;/A&gt;This parameter closes a security hole which 
existed with SSL certificate validation where certificate chains with invalid V3 
CA certificates would not be properly rejected. This allowed certificate chains 
with invalid intermediate CA certificates, rooted with a valid CA certificate to 
be trusted. X509 V3 CA certificates are required to contain the BasicConstraints 
extension, marked as being a CA, and marked as a critical extension. This 
checking protects against non-CA certificates masquerading as intermediate CA 
certificates.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151552&gt;&lt;/A&gt;The levels of enforcement are as follows:&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151553&gt;&lt;/A&gt;OFF &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151554&gt;&lt;/A&gt;This level entirely disables enforcement and 
is not recommended. Most current commercial CA certificates should work under 
the default STRONG setting.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151555&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;EnforceBasicConstraints=off&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151557&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;EnforceBasicConstraints=false&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151558&gt;&lt;/A&gt;STRONG &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151559&gt;&lt;/A&gt;Default. The BasicConstraints for V3 CA 
certificates are checked and the certificates are verified to be CA 
certificates.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151560&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;EnforceBasicConstraints=strong&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151562&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;EnforceBasicConstraints=true&lt;/CODE&gt;&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151563&gt;&lt;/A&gt;STRICT &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151564&gt;&lt;/A&gt;This level does the same checking as the 
STRONG level, but in addition it also strictly enforces IETF RFC 2459 which 
specifies the BasicConstraints for CA certificates also must be marked as 
&quot;critical&quot;. This is not the default setting because a number of current 
commercially available CA certificates don't conform to RFC 2459 and don't mark 
the BasicConstraints as critical. Set this if you want to strict conformance to 
RFC 2459.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1151565&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;EnforceBasicConstraints=strict&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144845&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;SecureProxy&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144847&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;OFF&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144849&gt;&lt;/A&gt;Set this parameter to &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt; to enable the use of the SSL protocol for 
all communication between the plug-in and WebLogic Server. Remember to configure 
a port on the corresponding WebLogic Server for the SSL protocol before defining 
this parameter. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1144850&gt;&lt;/A&gt;This parameter may be set at two levels: in 
the configuration for the main server and&#8212;if you have defined any virtual 
hosts&#8212;in the configuration for the virtual host. The configuration for the 
virtual host inherits the SSL configuration from the configuration of the main 
server if the setting is not overridden in the configuration for the virtual 
host.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144853&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;TrustedCAFile&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144855&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;none&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144857&gt;&lt;/A&gt;Name of the file that contains the digital 
certificates for the trusted certificate authorities for the plug-in. This 
parameter is required if the &lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1144845&quot;&gt;SecureProxy&lt;/A&gt; 
parameter is set to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;ON&lt;/CODE&gt;. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1144858&gt;&lt;/A&gt;The filename must include the full directory 
path of the file.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144860&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;RequireSSLHostMatch&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144862&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;true&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144864&gt;&lt;/A&gt;Determines whether the host name to which the 
plug-in is connecting must match the Subject Distinguished Name field in the 
digital certificate of the WebLogic Server to which the proxy plug-in is 
connecting. &lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154998&gt;&lt;/A&gt;When specifying SecureProxy=ON and 
RequireSSLHostMatch=true in the plug-in, then the value specified in the 
ListenAddress property should exactly match the hostname value specified in the 
certificate.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154999&gt;&lt;/A&gt;When using the ExternalDNSName property for 
WebLogic Server and setting SecureProxy=ON and RequireSSLHostMatch=true in the 
plug-in, then the value specified in the ExternalDNSName property should exactly 
match the hostname value specified in the certificate.&lt;/P&gt;
&lt;P class=table&gt;&lt;A name=1154994&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144867&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;SSLHostMatchOID&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144869&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;22&lt;/CODE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top scope=row align=left&gt;
&lt;P class=table&gt;&lt;A name=1144871&gt;&lt;/A&gt;The ASN.1 Object ID (OID) that identifies 
which field in the Subject Distinguished Name of the peer digital certificate is 
to be used to perform the host match comparison. The default for this parameter 
corresponds to the &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;CommonName&lt;/CODE&gt; field of 
the Subject Distinguished Name. Common OID values are: &lt;/P&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145915&gt;&lt;/A&gt;Sur Name&#8212;23&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145951&gt;&lt;/A&gt;Common Name&#8212;22&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145960&gt;&lt;/A&gt;Email&#8212;13&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145969&gt;&lt;/A&gt;Organizational Unit&#8212;30&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145978&gt;&lt;/A&gt;Organization&#8212;29&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;UL class=smallindent&gt;
&lt;LI type=square&gt;
&lt;P class=table&gt;&lt;A name=1145987&gt;&lt;/A&gt;Locality&#8212;26&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;P&gt;&lt;/P&gt;&lt;/P&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/CODE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR noShade&gt;

&lt;H1 class=head1&gt;&lt;A name=1153059&gt;&lt;/A&gt;Configuring Web Applications and Clusters 
for the Plug-in&lt;/H1&gt;
&lt;P&gt;&lt;A name=1153060&gt;&lt;/A&gt;Set the following attributes on a cluster or a Web 
application to configure security for applications accessed via the plug-in.&lt;/P&gt;
&lt;UL type=square&gt;
&lt;LI type=square&gt;&lt;A name=1153061&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WeblogicPluginEnabled&lt;/CODE&gt;&#8212;If you set this 
attribute to true for a cluster or a Web application that receives requests from 
the &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;HttpClusterServlet&lt;/CODE&gt;, the servlet 
will respond to &lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;getRemoteAddr&lt;/CODE&gt; calls 
with the address of the browser client from the proprietary &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WL-Proxy-Client-IP&lt;/CODE&gt; header, instead of 
returning the Web server address. 
&lt;LI type=square&gt;&lt;A name=1153027&gt;&lt;/A&gt;&lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;ClientCertProxy&lt;/CODE&gt; Enabled&#8212;If you set this 
attribute to true for a cluster or a Web application that receives requests from 
&lt;CODE style=&quot;FONT-FAMILY: courier&quot;&gt;HttpClusterServlet&lt;/CODE&gt;, the plug-in sends 
client certs to the cluster in the special &lt;CODE 
style=&quot;FONT-FAMILY: courier&quot;&gt;WL-Proxy-Client-Cert&lt;/CODE&gt; header, allowing user 
authentication to be performed on the proxy server. &lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;!-- BACK TO TOP --&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE cellSpacing=5 cellPadding=5 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center align=left width=125&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html&quot; target=&quot;_blank&quot;&gt;&lt;IMG 
title=&quot;Back to Top&quot; height=25 alt=&quot;Back to Top&quot; 
src=&quot;http://e-docs.bea.com/wls/docs81/images/backtop.gif&quot; width=90 border=0&gt;&lt;/A&gt; 
&lt;/TD&gt;
&lt;TD vAlign=center align=left width=85&gt;&lt;A href=&quot;http://e-docs.bea.com/wls/docs81/plugins/http_proxy.html&quot; target=&quot;_blank&quot;&gt;&lt;IMG 
title=Previous height=25 alt=Previous 
src=&quot;http://e-docs.bea.com/wls/docs81/images/prevtop.gif&quot; width=82 border=0&gt;&lt;/A&gt; 
&lt;/TD&gt;
&lt;TD vAlign=center align=left width=85&gt;&lt;IMG title=Next height=25 alt=Next 
src=&quot;http://e-docs.bea.com/wls/docs81/images/nexttop_disabled.gif&quot; width=66 
border=0&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;!-- BACK TO TOP end --&gt;&lt;!-- FOOTER begin --&gt;
&lt;DIV id=footer&gt;&lt;A href=&quot;http://www.bea.com/contact/index.shtml&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Contact 
BEA&lt;/U&gt;&lt;/A&gt;&amp;nbsp;|&amp;nbsp; &lt;A 
href=&quot;mailto:docsupport@bea.com&quot;&gt;&lt;U&gt;Feedback&lt;/U&gt;&lt;/A&gt;&amp;nbsp;|&amp;nbsp; &lt;A 
href=&quot;http://www.bea.com/framework.jsp?CNT=privacy.htm&amp;FP=/content/legal/&quot;&gt;&lt;U&gt;Privacy&lt;/U&gt;&lt;/A&gt; 
&amp;nbsp;|&amp;nbsp;
&lt;SCRIPT language=Javascript1.1 type=text/javascript&gt;
Copyright();
&lt;/SCRIPT&gt;
 &lt;A href=&quot;http://edocs.bea.com/copyright.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;&amp;copy; 2005 BEA Systems&lt;/U&gt;&lt;/A&gt; 
v&lt;NOSCRIPT&gt;&lt;A href=&quot;http://edocs.bea.com/copyright.html&quot; target=&quot;_blank&quot;&gt;&amp;copy BEA Systems&lt;/a&gt;&lt;/NOSCRIPT&gt;&lt;/DIV&gt;&lt;!-- FOOTER end --&gt;&lt;!-- WebTrend begin --&gt;&lt;!-- START OF Data Collection Server TAG --&gt;&lt;!-- Copyright 2002 NetIQ Corporation --&gt;&lt;!-- V2.1 --&gt;
&lt;SCRIPT language=JavaScript type=text/javascript&gt;
&lt;!--
var dcs_imgarray = new Array;
var dcs_ptr = 0;
var dCurrent = new Date();
var DCS=new Object();
var WT=new Object();
var DCSext=new Object();

var dcsADDR = &quot;63.96.161.95&quot;;
var dcsID = &quot;&quot;;

if (dcsID == &quot;&quot;){
	var TagPath = dcsADDR;
} else {
	var TagPath = dcsADDR+&quot;/&quot;+dcsID;
}

function dcs_var(){
	WT.tz = dCurrent.getTimezoneOffset();
	WT.ul = navigator.appName==&quot;Netscape&quot; ? navigator.language : navigator.userLanguage;
//	WT.cd = screen.colorDepth;
//	WT.sr = screen.width+&quot;x&quot;+screen.height;
	WT.jo = navigator.javaEnabled() ? &quot;Yes&quot; : &quot;No&quot;;
	WT.ti   = document.title;
	DCS.dcsdat = dCurrent.getTime();
	if ((window.document.referrer != &quot;&quot;) &amp;&amp; (window.document.referrer != &quot;-&quot;)){
		if (!(navigator.appName == &quot;Microsoft Internet Explorer&quot; &amp;&amp; parseInt(navigator.appVersion) &lt; 4) ){
			DCS.dcsref = window.document.referrer;
		}
	}

	DCS.dcsuri = window.location.pathname;
	DCS.dcsqry = window.location.search;
	DCS.dcssip = window.location.hostname;

}

function A(N,V){
	return &quot;&amp;&quot;+N+&quot;=&quot;+escape(V);
}

function dcs_createImage(dcs_src)
{
	if (document.images){
		dcs_imgarray[dcs_ptr] = new Image;
		dcs_imgarray[dcs_ptr].src = dcs_src;
		dcs_ptr++;
	}
}

function dcsMeta(){
	var MRV=&quot;&quot;;
	var F=false;
	var myDocumentElements;
	if (document.all){
		F = true;
		myDocumentElements=document.all.tags(&quot;meta&quot;);
	}
	if (!F &amp;&amp; document.documentElement){
		F = true;
		myDocumentElements=document.getElementsByTagName(&quot;meta&quot;);
	}
	if (F){
		for (var i=1; i&lt;=myDocumentElements.length;i++){
			myMeta=myDocumentElements.item(i-1);
			if (myMeta.name.indexOf('WT.')==0){
				WT[myMeta.name.substring(3)]=myMeta.content;
			}
			if (myMeta.name.indexOf('DCSext.')==0){
				DCSext[myMeta.name.substring(7)]=myMeta.content;
			}
		}
	}
}

function dcs_TAG(TagImage){
	var P =&quot;http&quot;+(window.location.protocol.indexOf('https:')==0?'s':'')+&quot;://&quot;+TagImage+&quot;/dcs.gif?&quot;;
	for (N in DCS){P+=A( N, DCS[N]);}
	for (N in WT){P+=A( &quot;WT.&quot;+N, WT[N]);}
	for (N in DCSext){P+=A( N, DCSext[N]);}

	dcs_createImage(P);
}
// This is a sample of the function that would be called if you needed to re-run the script.
//function dcs_ReRun(URI,QRY){
//	DCS.dcsuri = URI;
//	DCS.dcsqry = QRY;
//	dcs_TAG();
//}

dcsMeta();
dcs_var();
dcs_TAG(TagPath);
//--&gt;
&lt;/SCRIPT&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>How to find bottleneck in J2EE application</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5454294"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5454294</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-12T14:38:12Z</updated>
	    <published>2005-12-12T14:38:12Z</published>
	    <content type="html">
	    	&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=con_skybg_indent align=middle height=25&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;95%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=con_dark_blue_no_bold colSpan=3&gt;&lt;IMG height=12 
src=&quot;http://www.j2eestudy.co.kr/common/bullet01.gif&quot; width=15&gt;&lt;B&gt;J2EE 어플리케이션에서 
Bottleneck의 발생과 대처 방법 &lt;/B&gt;&lt;FONT face=verdana size=1&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=13 height=5&gt;&lt;/TD&gt;
&lt;TD width=363 height=5&gt;&lt;/TD&gt;
&lt;TD width=296 height=5&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=con_dark_blue width=13&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class=basic align=left width=363&gt;작성자 : 조지훈 (easyhuny)&lt;/TD&gt;
&lt;TD class=basic align=right width=296&gt;작성일 : 2005-03-30 
13:38:31&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;!-- start of content --&gt;
&lt;TR&gt;
&lt;TD class=con_list_title vAlign=top align=middle&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;95%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=con_whitebox vAlign=top align=left&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=15 height=15&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD height=15&gt;&lt;BR&gt;
&lt;P align=right&gt;&lt;A id=list 
href=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_index.html&quot; 
target=_blank&gt;&lt;IMG src=&quot;http://www.j2eestudy.co.kr/lecture/image/print.jpg&quot; 
border=0&gt;프린트하기&lt;/A&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=15 height=15&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width=15&gt;&lt;/TD&gt;
&lt;TD class=basic vAlign=top align=left height=300&gt;&lt;BR&gt;
&lt;STYLE&gt;&lt;!--    td { font-size: 9pt}    body { font-size: 9pt; }      a:link{text-decoration:none}      a:visited{text-decoration:none}      a:active{text-decoration:none}      a:hover{text-decoration:underline}    p {line-height:150%; margin-top:0; margin-bottom:0;}	--&gt;&lt;/STYLE&gt;
&lt;BR&gt;&lt;B&gt;&lt;FONT face=Verdana size=5&gt;How to find bottleneck in J2EE 
application&lt;/FONT&gt;&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P align=right&gt;&lt;FONT size=2&gt;자바스터디 네트워크&lt;/FONT&gt; &lt;SPAN 
style=&quot;FONT-SIZE: 10pt&quot;&gt;&lt;FONT 
face=Verdana&gt;[www.javastudy.co.kr]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=right&gt;&lt;FONT size=2&gt;조대협&lt;/FONT&gt; &lt;SPAN style=&quot;FONT-SIZE: 10pt&quot;&gt;&lt;FONT 
face=Verdana&gt;[bcho_N_O_SPAM@j2eestudy.co.kr]&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=silver&gt;J2ee application을 운영하다보면, 시스템이 극도로 느려지거나, 멈춰버리는 현상이 
생기고는 한데, 분명히 개발하면서 테스트할때는 문제가 없었는데, 왜 이런일이 생기고, 어떻게 대처해야하는지에 대해서 알아보도록 하자. 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;일반적으로 J2ee application을 서비스 하기 위해서는 아래와 같은 구조를 
가지게 된다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image001.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 1. 일반적인 J2ee application의 구조&gt;&lt;/P&gt;&lt;BR&gt;J2ee 
application의 동작에 필요한 구성 요소를 나눠보면 위와 같이 Network, User Application (이하 User AP), 
WAS 또는 Servlet Engine(이하 통칭해서 WAS),JVM과 RDBMS 이렇게 크게 다섯가지 조각으로 나뉘어 진다. 물론 JCA를 
이용해서 Legacy와 연결할 수 도 있고, RMI/CORBA를 이용하여 다른 Architecture를 구현할 수 는 있으나, 이 강좌는 
어디까지나 일반론을 설명하고자 하는것임으로 범위에서는 제외하겠다. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;1. Hang up과 slow down현상의 정의&lt;/B&gt;&lt;/FONT&gt; 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;먼저 용어를 정의하도록 하자.. 시스템이 느려지거나 멈추는 현상에 대해서 아래와 
같이 용어를 정의하자&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Hang up : Server Instance는 실행되고 
있느나, 아무런 응답이 없는 상황 (멈춤 상태)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Slowdown : Server 
Instance의 response time이 아주 급격히 떨어지는 상태 (느려짐)&lt;BR&gt;&lt;BR&gt;이 Hangup과 slowdown현상은, 대부분이 
그림 1에서 설명한 다섯가지 요소중 하나 이상의 병목으로 인해서 발생한다. 즉, 이 병목 구간을 발견하고, 그 구간을 제거하면 정상적으로 
시스템을 운영할 수 있게 되는것이다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;2. Slow down analysis in WAS &amp; User 
AP&lt;/B&gt;&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;2-1. WAS의 기본 구조&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;이 
병목 구간을 발견하는 방법에 앞서서, 먼저 WAS 시스템의 기본적인 내부 구조를 이해할 필요가 있다. &lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image002.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 2. WAS 시스템의 구조&gt;&lt;/P&gt;&lt;BR&gt;&lt;그림 2&gt;는 일반적인 WAS의 
구조이다.&lt;BR&gt;WAS는 Client로 부터 request를 받아서, 그 Request의 내용을 분석한다 JMS인지, HTTP , RMI 
request인지를 분석한후 (Dispatcher) 그 내용을 Queue에 저장한다.&lt;BR&gt;&lt;BR&gt;Queue에 저장된 내용은 WAS에서 
Request를 처리할 수 있는 Working Thread들이 있을때 각각의 Thread들이 Queue에서 Request를 하나씩 꺼내서 각각의 
Thread들이 그 기능을 수행한다.&lt;BR&gt;&lt;BR&gt;여기서 우리가 주의깊게 봐야하는것은 Thread pooling이라는 
것인데.&lt;BR&gt;Thread를 미리 만들어놓고, Pool에 저장한체로 필요할때 그 Thread 를 꺼내서 사용하는 방식이다. (Connection 
Pooling과 같은 원리이다.)&lt;BR&gt;&lt;BR&gt;WAS에서는 일반적으로 업무의 성격마다 이 Thread Pool을 나누어서 만들어놓고 사용을 
한다. 즉 예를 들어서 금융 시스템의 예금 시스템과 보험 시스템이 하나의 WAS에서 동작할때, 각각의 업무를 Thread Pool을 나누어서 
분리하는 방식이다. 이 방식을 사용하면 업무의 부하에 따라서 각 Thread Pool의 Thread수를 조정할 수 있으며, 만약에 Thread가 
모자르거나 deadlock등의 장애사항이 생기더라도 그것은 하나의 Thread Pool에만 국한되는 이야기이기 때문에, 다른 업무에 영향을 거의 
주지 않는다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;2-2. Thread Dump를 통한 WAS의 병목 구간 분석&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;위에서 살펴봤듯이, WAS는 
기본적으로 Thread 기반으로 작동하는 Application이다. 우리가 hang up이나 slow down은 대부분의 경우가 WAS에서 
현상이 보이는 경우가 많다. (WAS에 원인이 있다는 소리가 아니라.. 다른 요인에 의해서라도 WAS의 처리 속도가 느려질 수 있다는 
이야기다.)&lt;BR&gt;&lt;BR&gt;먼저 이 WAS가 내부적으로 어떤 Application을 진행하고 있는지를 알아내면 병목 구간에 한층 쉽게 접근할 수가 
있다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;1) What is thread dump?&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;이를 위해서 JVM에서는 Java Thread 
Dump라는 것을 제공한다.&lt;BR&gt;Thread Dump란 Java Application이 작동하는 순간의 X-Ray 사진, snapshot을 
의미한다.&lt;BR&gt;즉 이 Thread dump를 연속해서 수번을 추출한다면, 그 당시에 Application이 어떻게 동작하고 진행되고 있는가를 
살펴볼 수 있다.&lt;BR&gt;&lt;BR&gt;Thread dump를 추출하기 위해서는 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Unix 에서는 
kill -3 pid&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- Windows 계열에서는 Ctrl + break &lt;BR&gt;를 누르면 
stdout으로 thread dump가 추출 된다.&lt;BR&gt;&lt;BR&gt;Thread dump는 Application을 구성하고 있는 현재 구동중인 모든 
Thread들의 각각의 상태를 출력해준다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image003.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-2. Thread dump&gt;&lt;/P&gt;&lt;BR&gt;그림 3-2는 전체 Thread 
dump중에서 하나의 Thread를 나타내는 그림이다.&lt;BR&gt;Thread Dump에서 각각의 Thread는 Thread의 이름과, Thread의 
ID, 그리고 Thread 의 상태와, 현재 이 Thread가 실행하고 있는 Prorgam의 스택을 보여준다.&lt;BR&gt;&lt;BR&gt;- Thread 
name&lt;BR&gt;각 쓰레드의 이름을 나타낸다. &lt;BR&gt;※ WAS나 Servlet Engine에 따라서는 이 이름에 Thread Queue이름등을 
배정하는 경우가 있다.&lt;BR&gt;&lt;BR&gt;- Thread ID&lt;BR&gt;쓰레드의 System ID를 나타낸다. 이 강좌 나중에 이 ID를 이용해서 각 
Thread별 CPU 사용률을 추적할 수 있다.&lt;BR&gt;&lt;BR&gt;- Thread Status &lt;BR&gt;매우 중요한 값중의 하나로 각 Thread의 
현재 상태를 나타낸다. 일반적으로 Thread가 사용되고 있지 않을때는 wait를 , 그리고 사용중일때는 runnable 을 나타내는게 
일반적이다.&lt;BR&gt;그외에, IO Wait나 synchronized등에 걸려 있을때 Wait for monitor entry, MW 
(OS별JVM별로 틀림) 등의 상태로 나타난다.&lt;BR&gt;&lt;BR&gt;- Program stack of thread&lt;BR&gt;현재 해당 Thread가 어느 
Class의 어느 Method를 수행하고 있는지를 나타낸다. 이 정보를 통해서 현재 WAS가 어떤 작업을 하고 있는지를 유추할 수 
있다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;2) How to analysis thread dump&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;앞에서 Thread dump가 무엇이고, 
어떤 정보를 가지고 있는지에 대해서 알아봤다. 그러면 이 Thread dump를 어떻게 분석을 하고, System의 Bottle neck을 
찾아내는데 이용할지를 살펴보기로 하자.&lt;BR&gt;&lt;BR&gt;System이 Hangup이나 slowdown에 걸렸을때, 먼저 Thread dump를 
추출해야 한다. 이때 한개가 아니라 3~5초 간격으로 5개 정도의 dump를 추출한다. 추출한 여러개의 dump를 연결하면 각 Thread가 
시간별로 어떻게 변하고 있는지를 판별할 수 있다.&lt;BR&gt;&lt;BR&gt;먼저 각각의 Thread 덤프를 비교해서 보면, 각각의 Thread는 적어도 
1~2개의 덤프내에서 연속된 모습을 보여서는 안되는게 정상이다. 일반적으로Application은 내부적으로 매우 고속으로 처리되기 때문에, 
하나의 Method에 1초이상 머물러 있는다는것은 거의 있을 수 없는 일이다.&lt;BR&gt;Thread Dump의 분석은 각각의Thread가 시간이 
지남에 따라서 진행되지 않고 멈춰 있는 Thread를 찾는데서 부터 시작된다.&lt;BR&gt;&lt;BR&gt;예를 들어서 설명해보자 . 아래 &lt;그림 
3-3&gt;의 프로그램을 보면 MY_THREAD_RUN()이라는 메소드에서 부터 MethodA()aMethodB()aMethodC() 를 
차례로 호출하는 형태이다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image004.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-3. sample code&gt;&lt;/P&gt;&lt;BR&gt;이 프로그램을 수행하는 중에 처음부터 
Thread Dump를 추출 하면 대강 다음과 같은 형태일것임을 예상할 수 있다. 함수 호출에 따라서 Stack이 출력되다가 ◇의 단계 즉 
MethodC에서 무한루프에 빠지게 되면 더이상 프로그램이 진행이 없기 때문에 똑같은 덤프를 유지하게 된다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image005.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;우리는 이 덤프만을 보고 methodC에서 무엇인가 잘못되었음을 유추할 수 있고, methodC의 소스코드를 
분석함으로써 문제를 해결할 수 있다.&lt;BR&gt;&lt;BR&gt;그렇다면 이제부터 Slow down과 Hang up현상을 유발하는 일반적인 유형과 그 
Thread Dump의 모양에 대해서 알아보도록 하자.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 1] lock 
contention&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;잘 알다싶이 Java 는 Multi Threading을 지원한다. 이 경우 공유영역을 보호하기 위해서 
Synchronized method를 이용하는데, 우리가 흔히들 말하는 Locking이 이것이다. &lt;BR&gt;&lt;BR&gt;예를 들어 Thread1이 
Synchronized된 Method A의 Lock을 잡고 있는 경우, 다른 쓰레드들은 그 Method를 수행하기 위해서, 앞에서 Lock을 
잡은 쓰레드가 그 Lock을 반환하기를 기다려야한다. &lt;그림 3-4&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image006.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-4. Thread 간에 Lock을 기다리는 형태&gt;&lt;/P&gt;&lt;BR&gt;만약에 이 
Thread 1의 MethodA의 수행시간이 아주 길다면 Thread 2,3,4는 마냥 이 수행을 아주 오랜 시간 기다려야하고, 다음 2번이 
Lock을 잡는다고 해도 3,4번 Thread들은 1번과 2번 쓰레드가 끝난 시간 만큼의 시간을 누적해서 기다려야 하기때문에, 수행시간이 매우 
느려지는 현상을 겪게 된다.&lt;BR&gt;&lt;BR&gt;이처럼 여러개의 Thread가 하나의 Lock을 동시에 획득하려고 하는 상황을 Lock 
Contention 이라고 한다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image007.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-5. Lock Contention 상황에서 Thread의 시간에 따른 진행 
상태&gt;&lt;/P&gt;&lt;BR&gt;이런 상황에서 Thread Dump를 추출해보면 &lt;그림 3-6&gt; 과 같은 형태를 띠게 
된다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image008.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-6. Lock Contention에서 Lock을 기다리고 있는 상황의 Thread 
Dump&gt;&lt;/P&gt;&lt;BR&gt;그림 3-6의 덤프를 보면 12번 Thread가 
org.apache.axis.utils.XMLUtils.getSAXParser에서 Lock을 잡고 있는것을 볼 수 있고, 36,15,14번 
쓰레드들이 이 Lock을 기다리고 있는것을 볼 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 1] 해결방안&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;이런 Lock 
Contention 상황은 Multi Threading환경에서는 어쩔 수 없이 발생하는 상황이기는 하지만, 이것이 문제가 되는 경우는 
Synchronized Method의 실행 시간이 불필요하게 길거나, 불필요한 Synchronized문을 사용했을 때 
발생한다.&lt;BR&gt;&lt;BR&gt;그래서 이 문제를 해결하기 위해 불필요한 Sychronized Method의 사용을 자제하고, Synchronized 
block 안에서의 최적화된 Algorithm을 사용하는것이 필요하다. &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 2] dead 
lock&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;이 Locking으로 인해서 발생할 수 있는 또 다른 문제는 dead Lock 현상이다. 두개 이상의 쓰레드가 서로 
Lock을 잡고 기다리는 “환형대기조건” 이 성립되었을때, 서로 Lock이 풀리지 않고 무한정 대기하는 현상을 이야기 
한다.&lt;BR&gt;&lt;BR&gt;&lt;그림 3-7&gt;을 보면 Thread1은 MethodA를 수행하고 있는데, sychronized methodB를 
호출하기전에 Thread2가 methodB가 끝나기를 기다리고 있다. 마찬가지로 Therad2는 Thread3가 수행하고 있는 methodC가 
끝나기를 기다리고 있고, methodC에서는 Thread1에서 수행하고 있는 methodA가 끝나기를 기다리고 있다.&lt;BR&gt;즉 각각의 메소드들이 
서로 끝나기를 기다리고 있는 “환형 대기조건” 이기 때문에 이 Application의 3개의 쓰레드들은 프로그램이 진행이 되지 않게 
된다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image009.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-7. 환형 대기조건에 의한 deadlock&gt;&lt;/P&gt;&lt;BR&gt;이러한 
“환형대기조건”에 의한 deadlock은 Thread Dump를 추출해보면 &lt;그림 3-8&gt; 과 같은 패턴을 띠우고 있으며 시간이 
지나도 풀리지 않는다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image010.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-8. Deadlock이 걸렸을때 시간 진행에 따른 Thread의 
상태&gt;&lt;/P&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image011.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-9. Deadlock이 걸린 IBM AIX Thread 
Dump&gt;&lt;/P&gt;&lt;BR&gt;DeadLock의 검출은 Locking Condition을 비교함으로써 검출할 수 있으며, 최신 JVM (Sun 
1.4이상등)에서는 Thread Dump 추출시 만약 Deadlock이 있다면 해당 Deadlock을 찾아주는 기능을 가지고 
있다.&lt;BR&gt;&lt;BR&gt;&lt;그림 3-9&gt;를 보자. IBM AIX의 Thread 덤프이다. 1)항목을 보면 현재 8번 쓰레드가 잡고 있는 
Lock은 10번과 6번 쓰레드가 기다리고 있음을 알 수 있으며. Lock은 OracleConnection에 의해서 잡혀있음을 확인할 수 있다. 
(아래)&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image012.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;&lt;그림 3-9&gt;의 2)번 항목을 보면 이 6번쓰레드는 OracleStatement에서 Lock을 잡고 
있는데, 이 Lock을 8번 쓰레드가 기다리고 있다. (아래)&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image013.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;결과적으로 6번과 8번은 서로 Lock을 기다리고 있는 상황이 되어 Lock이 풀리지 않는 Dead Lock상황이 
된다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 2] 해결 방안&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;Dead Lock의 해결 방안은 서로 Lock을 보고 있는것을 다른 
Locking Object를 사용하거나 Lock의 방향 (Synchronized call의 방향)을 바꿔줌으로써 해결할 수 
있다.&lt;BR&gt;&lt;BR&gt;User Application에서 발생한 경우에는 sychronized method의 호출 순서를 “환형대기조건”이 생기지 
않도록 바꾸도록 하고.&lt;BR&gt;위와 같이 Vendor들에서 제공되는 코드에서 문제가 생긴경우에는 Vendor에 패치를 요청하도록 하여 
해결한다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 3] wait for IO response&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;다음으로 많이 볼 수 있는 패턴은 
각각의 Thread들이 IO Response를 기다리는데… IO작업에서 response가 느리게 와서 시스템 처리속도가 느려지는 경우가 
있다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image014.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-10. Thread들이 IO Wait를 할때 시간에 따른 Thread Dump 
상황&gt;&lt;/P&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image015.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-11. Thread가 DB Query Wait에 걸려 있는 
stack&gt;&lt;/P&gt;&lt;BR&gt;&lt;그림 3-10&gt; 상황은 DB에 Query를 보내고 response를 Thread들이 기다리고 있는 
상황이다. AP에서 JDBC를 통해서 Query를 보냈는데, Response가 오지 않으면 계속 기다리게 있게 되고, 다른 Thread가 같은 
DB로 보냈는데. Response가 오지 않고, 이런것들이 중복되서 결국은 사용할 수 없는 Thread가 없게 되서 새로운 request를 
처리하지 못하게 되고, 기존에 Query를 보낸 내용도 응답을 받지 못하는 상황이다.&lt;BR&gt;&lt;BR&gt;&lt;그림 3-11&gt;은 각각의 
Thread의 stack dump인데, 그 내용을 보면 ExecuteQuery를 수행한후에, Oracle로 부터 데이타를 read하기 위해 대기 
하는것을 확인할 수 있다.&lt;BR&gt;&lt;BR&gt;이런 현상은 주로 DB 사용시 대용량 Query(시간이 많이 걸리는)를 보냈거나, DB에 lock들에 
의해서 발생하는 경우가 많으며, 그외에도 Socket이나 File을 사용하는 AP의 경우 IO 문제로 인해서 발생하는 경우가 
많다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 3] 해결 방안&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;이 문제의 해결 방안은 Thread Dump에서 문제가 되는 부분을 
발견한후에, 해당 소스코드나 시스템등에 접근하여 문제를 해결해야한다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[CASE 4] high CPU 
usage&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;시스템이 느려지거나 거의 멈추었을때, 우리가 초기에 해볼 수 있는 조치가 무엇인가 하면, 현재 시스템의 CPU 
사용률을 체크해볼 필요가 있다.&lt;BR&gt;&lt;BR&gt;해당 시스템의 CPU 사용률이 높은 경우, 문제가 되는경우가 종종 있는데. 이런 문제에서는 CPU를 
많이 사용하는 모듈을 찾아내는것이 관건이다.&lt;BR&gt;&lt;BR&gt;이를 위해서 먼저 top 이나 glance(HP UX)를 통해서 CPU를 많이 점유하고 
있는 Process를 판독한다. 만약 WAS 이외의 다른 process가 CPU를 많이 사용하고 있다면, 그 Process의 CPU 과사용 
원인을 해결해야 한다. CPU 사용률이외에도, Disk IO양이 많지는 않은지.. WAS의 JVM Process가 Swap out (DISK로 
SWAP되는 현상) 이 없는지 살펴보도록 한다. JVM Process가 Swapping이 되면 실행속도가 엄청나게 느려지기 때문에, JVM 
Process는 Swap out 되어버리면 안된다.&lt;BR&gt;&lt;BR&gt;일단 CPU를 과 사용하는 원인이 WAS Process임을 발견했으면 
프로그램상에 어떤 Logic이 CPU를 과점유하는지를 찾아내야한다.&lt;BR&gt;&lt;BR&gt;방식을 정리해보면 다음과 같다.&lt;BR&gt;WAS Process의 
Thread별 CPU 사용률을 체크한다. ← 1)&lt;BR&gt;Thread Dump를 추출한다. ← 2)&lt;BR&gt;&lt;BR&gt;1)과, 2)에서 추출한 정보를 
Mapping하여, 2)의 Thread Dump상에서 CPU를 과점유하는 Thread를 찾아내어 해당 Thread의 Stack을 분석하여 CPU 
과점유하는 원인을 찾아낸다.&lt;BR&gt;&lt;BR&gt;대부분 이런 요인을 분석해보면 다음과 같은 원인이 많다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;과도한 String 연산으로 
인해서 CPU 사용률이 높아지는 경우&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;잘 알고 있다시피 String 연산은 CPU 를 아주 많이 사용한다. String과 
Loop문(for,while등)의 사용은 CPU부하를 유발하는 경우가 많기 때문에 가급적이면 String Buffer를 사용하도록 하자. 
&lt;BR&gt;&lt;BR&gt;&lt;U&gt;과도한 RMI Cal&lt;/U&gt;&lt;BR&gt;RMI호출은 Java Object를 Serialize하고 Deserialize하는 과정을 
수반하는데, 이는 CPU를 많이 사용하는 작업이기 때문에 사용에 주의를 요한다. 특별히 RMI를 따로 코딩하지 않더라도 EJB를 호출하는것이 
Remote Call일때는 기본적으로 RMI호출을 사용하게 되고, 부하량이 많을때 이 부분이 주로 병목의 원인이 되곤한다. 특히 
JSP/ServletaEJB 호출되는것이 같은 System의 같은 JVM Process안이라도 WAS별로 별도의 설정을 해주지 않으면 RMI 
Call을 이용하는 형태로 구성이 되기 때문에, 이에 대한 배려가 필요하다.&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=#eeeeee&gt;※ WebLogic에서 Call By Reference를 위한 호출 방법 
정의&lt;BR&gt;&lt;BR&gt;참고로 WebLogic의 경우에는 Servlet/JSPaEJB를 호출하는 방식을 Local Call을 이용하기 위해서는 같은 
ear 파일내에 패키징해야하고, EJB의 weblogic-ejb-jar.xml에 enable-call-by-reference를 true로 
설정해줘야한다. (8.1이상)&lt;BR&gt;&lt;BR&gt;자세한 내용은&lt;BR&gt;&lt;A 
href=&quot;http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?table=j2ee&amp;db=lecture0201_1&amp;id=1&amp;searchBy=subject&amp;searchKey=deploy&amp;block=0&amp;page=0&quot;&gt;http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?table=j2ee&amp;db=lecture0201_1&amp;id=1&amp;searchBy=subject&amp;searchKey=deploy&amp;block=0&amp;page=0&lt;/A&gt;를 
참고하시 바란다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;U&gt;JNDI lookup&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;JNDI 
lookup은 Server의 JNDI에 Binding된 Object를 읽어오는 과정이다. 이 과정은 위에서 설명한 RMI call로 
수행이되는데. 특히 EJB를 호출하기 위해서 Home과 Remote Interface를 lookup하는 과장에서 종종 CPU를 과점유하는 형태를 
관찰 할 수 있다. &lt;BR&gt;&lt;BR&gt;그래서 JNDI lookup의 경우에는 EJB Home Interface를 Caller 
Side(JSP/Servlet 또는 poor Java client)등에서 Caching해놓고 사용하는 것을 권장한다. 단. 이경우에는 EJB의 
redeploy기능을 제약받을 수 있다.&lt;BR&gt;&lt;BR&gt;다음은 각 OS별로 CPU 사용률이 높은 Thread를 검출해내는 
방법이다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;■ Solaris에서 CPU 사용률이 높은 Thread를 검출하는 방법&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;100%&quot; bgColor=black border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=white&gt;&lt;BR&gt;1.prstat 명령을 이용해서 java process의 LWP(Light Weight 
process) CPU 사용률을 구한다.&lt;BR&gt;&lt;BR&gt;% prstat -L -p [WeblogicPID] 1 1&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image016.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-6. Lock Contention에서 Lock을 기다리고 있는 상황의 Thread 
Dump&gt;&lt;/P&gt;&lt;BR&gt;2. pstack 명령어를 이용해서 native thread와 LWP 간의 id mapping을 
알아낸다.&lt;BR&gt;(※ 전에 먼저 java process가 lwp로 돌아야되는데, startWebLogic.sh에 LD_LIBRARY_PATH에 
/usr/lib/lwp 가 포함되어야 한다.)&lt;BR&gt;&lt;BR&gt;% pstack [WebLogicPID]&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image017.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-6. Lock Contention에서 Lock을 기다리고 있는 상황의 Thread 
Dump&gt;&lt;/P&gt;&lt;BR&gt;3. 1에서 얻은 LWP ID를 pstack log를 통해서 분석해보면 어느 Thread에 mapping되는지를 
확인할 수 있다.&lt;BR&gt;여기서는 LWP 8이 Thread 24과 mapping이 되고 있음을 볼 수 있다. &lt;BR&gt;&lt;BR&gt;kill -3 
[WebLogicPID]를 해서 ThreadDump를 얻어낸다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image018.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 3-6. Lock Contention에서 Lock을 기다리고 있는 상황의 Thread 
Dump&gt;&lt;/P&gt;&lt;BR&gt;Thread dump에서 nid라는 것이 있는데, 2에서 얻어낸 thread id를 16진수로 바꾸면 이값이 
nid값과 같다. 즉 2에서 얻어낸 thread 24는 16진수로 0x18이기 때문에, thread dump에서 nid가 0x18인 쓰레드를 
찾아서 어떤 작업을하고 있는지를 찾아내면 된다.&lt;BR&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;■ AIX Unix에서 
CPU 사용률이 높은 Thread 검출해 내기&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;100%&quot; bgColor=black border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=white&gt;&lt;BR&gt;1. ps 명령을 이용하여, WebLogic Process의 각 
시스템thread의사용률을 구한다.&lt;BR&gt;&lt;BR&gt;% ps -mp [WeblogicPID] -0 THREAD&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image019.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;여기서 CP가 가장 높은 부분을 찾는다. 이 시스템 쓰레드가 CPU를 가장 많이 점유하고 있는 시스템 쓰레드이다. 
(여기서는 66723 이다.)&lt;BR&gt;&lt;BR&gt;2. dbx 명령을 이용해서 1.에서 찾은 시스템 쓰레드의 Java Thread ID를 
얻어온다.&lt;BR&gt;&lt;BR&gt;1) % dbx -a [WebLogicPID]&lt;BR&gt;2) dbx에서 “thread” 명령을 치면 Thread ID 를 
Listing할 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image020.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;k-tid 항목에서 1에서 찾은 Thread ID 를 찾고, 그 k-tid에 해당하는 thread id를 찾는다. 
(여기서는 $t17이 된다.)&lt;BR&gt;&lt;BR&gt;3) dbx에서 $t17 번 쓰레드의 Java Thread ID를 얻는다.&lt;BR&gt;dbx에서 “th 
info 17” 이라고 치면 $t17번 쓰레드의 정보를 얻어온다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image021.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;pthread_t 항목에서 Java Thread ID를 얻는다. 여기서는 1011이된다.&lt;BR&gt;&lt;BR&gt;3. 
Java Thread Dump에서 2에서 얻어온 Java Thread ID를 이용해서 해당 Java Thread를 찾아서 Java Stack을 
보고 CPU를 많이 사용하는 원인을 찾아낸다.&lt;BR&gt;&lt;BR&gt;1) kill -3 [WebLogicPID]&lt;BR&gt;2) Thread dump를 보면 
native ID 라는 항목이 있는데, 2.에서 찾은 Java Thread ID와 이 항목이 일치하는 Execute Thread를 찾으면 
된다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image022.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;■ HP Unix에서 CPU 사용률이 높은 
Thread 검출해내기&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=1 cellPadding=1 width=&quot;100%&quot; bgColor=black border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=white&gt;&lt;BR&gt;1. 먼저 JVM이 Hotspot mode로 작동하고 있어야 한다. (classic 
모드가 아니어야 한다.) 옵션을 주지 않았으면 Hotspot 모드가 default이다.&lt;BR&gt;&lt;BR&gt;2. glance를 실행해서 ‘G’를 누르고 
WAS의 PID를 입력한다.&lt;BR&gt;각 Thread의 CPU 사용률이 실시간으로 모니터링이 되는데. &lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image023.jpg&quot; 
border=1&gt;&lt;BR&gt;&lt;BR&gt;여기서 CPU 사용률이 높은 Thread의 TID를 구한다.&lt;BR&gt;&lt;BR&gt;3. kill -3 을 이용해서 
Thread dump를 추출해서. 2에서 구한 TID와 Thread Dump상의 lwp_id가 일치하는 Thread를 찾으면 
된다.&lt;BR&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;지금까지 Thread Dump를 이용하는 방법을 간단하게 
살펴보았다. 이 방법을 이용하면 WAS와 그 위에서 작동하는 Appllication의 Slow down 이나 hangup의 원인을 대부분 
분석해낼 수 있으나, Thread Dump는 어디까지나 분석을 위한 단순한 정보이다. Thread Dump의 내용이 Slow down이나 
hang up의 원인이 될수도 있으나, 반대로 다른 원인이 존재하여 그 결과로 Thread Dump와 같은 Stack이 나올 수 있기 때문에, 
여러 원인을 동시에 살펴보면서 분석할 수 있는 능력이 필요하다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;3. Slow down in JVM&lt;/B&gt;&lt;/FONT&gt; 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;WAS의 성능에 큰 영향을 주는것중의 하나가 JVM이다.&lt;BR&gt;JVM의 튜닝 여부에 
따라서 WAS상에서 작동하는 Ap의 성능을 크게는 20~30% 까지 향상시킬 수 있는데, 우리가 지금 살펴보고 있는 slow down과 
hangup 을 일으키는 직접적인 요인이 되는것은 JVM의 Full GC이다.&lt;BR&gt;&lt;BR&gt;간단하게 JVM의 메모리 구조를 검토하고 넘어가보도록 
하자.&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image024.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림 4-1. JVM의 메모리 구조&gt;&lt;/P&gt;&lt;BR&gt;JVM은 크게 New영역과 Old영역, 
그리고 Perm영역 3가지로 분류가 된다.&lt;BR&gt;Perm 영역은 Class나 Method들이 로딩되는 영역이고 성능상의 영향을 거의 미치지 
않는다.&lt;BR&gt;&lt;BR&gt;우리가 주목해야할 부분은 객체의 생성과 저장에 관련되는 New와 Old 영역인데, 모든 객체는 생성이 되자 마자 New 
영역에 저장되고, 시간이 지남에 따라 이 객체들은 Old 영역으로 이동이 된다.&lt;BR&gt;&lt;BR&gt;New 영역을 Clear하는 과정을 Minor 
GC라하고, Old 영역을 Clear하는 과정은 Major GC또는 Full GC라 하는데, 성능상의 문제는 이 Full 영역에서 
발생한다.&lt;BR&gt;&lt;BR&gt;Minor GC의 경우는 1초 이내에 아주 고속으로 이뤄지는 작업이기 때문에, 신경을 쓸 필요가 없지만, Full GC의 
경우에는 시간이 매우 오래걸린다.&lt;BR&gt;또한 Full GC가 발생할 동안은 Application이 순간적으로 멈춰 버리기 때문에 시스템이 
순간적으로 Hangup 으로 보이거나 또는 Full GC가 끝나면서 갑자기 request가 몰려버리는 현상 때문에 종종 System의 장애를 
발생시키는 경우가 있다.&lt;BR&gt;&lt;BR&gt;Full GC는 통상 1회에 3~5초 정도가 적절하고, 보통 하루에 JVM Instance당 5회 이내가 
적절하다고 여겨진다. (절대 값은 없다.)&lt;BR&gt;&lt;BR&gt;Full GC가 자주 일어나는것이 문제가 될경우에는 JVM의 Heap영역을 늘려주면 
천천히 일어나지만 반대로 Full GC에 소요되는 시간이 증가한다.&lt;BR&gt;&lt;BR&gt;개당 Full GC 시간이 오래걸릴 경우에는 JVM의 Heap 
영역을 줄여주면 빨리 Full GC가 끝나지만 반대로 Full GC가 자주 일어난다는 단점이 있다.&lt;BR&gt;&lt;BR&gt;그래서 이 부분에 대한 적절한 
Tuning이 필요하다.&lt;BR&gt;&lt;BR&gt;대부분의 Full GC로 인한 문제는 JVM자체나 WAS의 문제이기 보다는 그 위에서 구성된 
Application이 잘못 구성되어 메모리를 과도하게 사용하거나 오래 점유하는 경우가 있다.&lt;BR&gt;&lt;BR&gt;예를 들어 대용량 DBMS 
Query의 결과를 WAS상의 메모리에 보관하거나 , 또는 Session에 대량의 데이타를 넣는것들이 대표적인 예가 될 수 가 
있다.&lt;BR&gt;&lt;BR&gt;좀더 자세한 튜닝 방법에 대해서는 &lt;A 
href=&quot;http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?db=lecture0401_1&amp;table=j2ee&amp;id=1&quot;&gt;http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?db=lecture0401_1&amp;table=j2ee&amp;id=1&lt;/A&gt;를 
참고하기 바란다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;4. Slow down analysis in 
DBMS&lt;/B&gt;&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;Application이 느려지는 원인중의 많은 부분을 
차지 하고 있는 것은 DBMS의 성능 문제가 있는 경우가 많다.&lt;BR&gt;&lt;BR&gt;흔히들 DBMS Tuning을 받았더니 성능이 많이 향상되었다고 
하는 경우가 많은데, 그건 그만큼 DB 설계를 제대로 하지 못했다는 이야기가 된다.&lt;BR&gt;&lt;BR&gt;DBMS 자체 Tuning에 대한 것은 이 
문서와는 논외기 때문에 제외하기로 하고, DBMS에 전송되는 각각의 SQL문장의 실행 시간을 Trace할 수 있는 것만으로도 많은 성능 향상을 
기대할 수 있는데, 간단하게 SQL 문장을 실행시간은 아래 방법들을 이용해서 Trace할 수 있다.&lt;BR&gt;&lt;BR&gt;※ &lt;A 
href=&quot;http://eclipse.new21.org/phpBB2/viewtopic.php?printertopic=1&amp;t=380&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;vote=viewresult&quot;&gt;http://eclipse.new21.org/phpBB2/viewtopic.php?printertopic=1&amp;t=380&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;vote=viewresult&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;※ 
&lt;A 
href=&quot;http://www.j2eestudy.co.kr/qna/bbs_read.jsp?table=j2ee&amp;db=qna0104&amp;id=5&amp;searchBy=subject&amp;searchKey=sql&amp;block=0&amp;page=0&quot;&gt;http://www.j2eestudy.co.kr/qna/bbs_read.jsp?table=j2ee&amp;db=qna0104&amp;id=5&amp;searchBy=subject&amp;searchKey=sql&amp;block=0&amp;page=0&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;5. Slow down analysis in Webserver 
&amp; network&lt;/B&gt;&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;WAS와 DBMS 앞단에는 
WebServer와 Network 이 있기 때문에 이 Layer에서 문제가 되면 속도저하를 가지고 올 수 있다. 필자의 경험상 대부분의 slow 
down이나 hangup은 이 부분에서는 거의 일어나지 않지만 성능상에 종종 영향을 주는 Factor가 
있는데,&lt;BR&gt;&lt;BR&gt;&lt;B&gt;WebServer 와Client간의 KeepAlive&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;특히 WebServer의 Keep 
Alive설정이 그것이다.&lt;BR&gt;WebBrowser와 WebServer간에는 KeepAlive 설정을 하는것이 좋은데. 그 이유는 
WebBrowser에서 하나의 HTML 페이지를 로딩하기 위해서는 Image와 CSS등의 여러 파일등을 로딩하는데, KeepAlive 설정이 
없으면 각각의 파일을 로딩하는것에 각각의 Connection을 open,request,download,close를 한다. 잘들알고 있겠지만 
Socket을 open하고 close하는데에는 많은 자원이 소요된다. 그래서 한번 연결해놓은 Connection을 계속 이용해서 HTTP 
data를 주고 받는 설정이 KeepAlive이다.&lt;BR&gt;이 KeepAlive 설정은 웹을 이용한 서비스 제공에서 많은 성능 변화를 주기 때문에 
특별한 이유가 없는한 KeepAlive 설정을 유지하기 바란다. 설정 방법은 각 WebServer의 메뉴얼을 참고하기 바란다.&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=#eeeeee&gt;※ Apache2.0의 Keep Alive 설정은&lt;BR&gt;&lt;A 
href=&quot;http://httpd.apache.org/docs-2.0/mod/core.html#keepalive&quot;&gt;http://httpd.apache.org/docs-2.0/mod/core.html#keepalive&lt;/A&gt;를 
참고하기 바란다. Default가 KeepAlive 가 On으로 되어 
있다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;B&gt;WebServer와 WAS간의 
KeepAlive&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;WebServer와 WAS간에는 WebServer에서 받은 request를 forward하기 위해서 
WebServer Side에 WAS와 통신을 하기 위한 plug-in 이라는 모듈을 설치하게 된다. 이 역시 WebServer와 Client간의 
통신과의 같은 원리로 KeepAlive를 설정하게 되는데, 이 역시 성능에 영향을 줄 수 있는 부분이기 때문에 가급적이면 설정하기를 
권장한다.&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=#eeeeee&gt;※ WebLogic에서 Webserver와의 KeepAlive설정은 &lt;BR&gt;&lt;A 
href=&quot;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1143055&quot;&gt;http://e-docs.bea.com/wls/docs81/plugins/plugin_params.html#1143055&lt;/A&gt;을 
참고하기 바란다. &lt;BR&gt;Default는 KeepAlive가 True로 설정되어 
있다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;B&gt;OS에서 Kernel Parameter 설정&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;OS의 
TCP/IP Parameter와, Thread와 Process등의 Kernel Parameter 설정이 운영에 있어서 영향을 미치는 경우가 
있다. 이 Parameter들은 Tuning하기가 쉽지 않기 때문에, WAS또는 OS Vendor에서 제공하는 문서를 통해서 Tuning하기 
바란다.&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px&quot; 
width=&quot;100%&quot; bgColor=#eeeeee&gt;※ WebLogic의 OS별 설정 정보은&lt;BR&gt;&lt;A href=&quot;http://e-docs.bea.com/platform/suppconfigs/configs81/81_over/overview.html&quot; target=&quot;_blank&quot;&gt;http://e-docs.bea.com/platform/suppconfigs/configs81/81_over/overview.html&lt;/A&gt;를 
참고하기 바란다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;6. Common mistake in developing J2EE 
Application&lt;/B&gt;&lt;/FONT&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;지금까지 간단하게나마 J2EE 
Application의 병목구간을 분석하는 부분에 대해서 알아보았다. 대부분의 병목은 Application에서 발생하는 경우가 많은데, 이런 
병목을 유발하는 Application에 자주 발생하는 개발상의 실수를 정리해보도록 하자.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;1) Java 
Programming&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;sycnronized block&lt;/U&gt;&lt;BR&gt;위에서도 설명 했듯이 sychronized 메소드는 
lock contention과 deadlock등의 문제를 유발할 수 있다. 꼭 필요한 경우에는 사용을 해야하지만, 이점을 고려해서 
Coding해야한다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;String 연산&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;이미 많은 개발자들이 알고 있는 내용이겠지만 String 연산 특히 
String연산중 “+” 연산은 CPU를 매우 많이 소모하게 되고 종종 slow down의 직접적인 원인이 되는 경우가 매우 
많다.&lt;BR&gt;String 보다는 가급적 StringBuffer를 사용하기 바란다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Socket &amp; file 
handling&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;Socket이나File Handling은 FD (File Descriptor)를 사용하게 되는데, 이는 
유한적인 자원이기 때문에 사용후에 반드시 close명령을 이용해서 반환해야한다. 종종 close를 하지 않아서, FD가 모자르게 되는 경우가 
많다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;2) Servlet/JSP Programming&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;JSP Buffer 
Size&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;Jsp 에서는 JSP의 출력 내용을 저장하는 buffer 사이즈를 지정할 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;% page 
buffer=”12kb” %&gt;&lt;BR&gt;&lt;BR&gt;이 buffer size는 출력 내용을 buffering했다가 출력하는데, 만약에 쓰고자하는 
내용이 Buffer size 보다 클 경우에는 여러번에 걸쳐서 socket write가 일어나기 때문에 performance에 영향을 줄 수 
있으므로 가능하다면 buffersize를 화면에 뿌리는 내용의 크기를 예측해서 지정해주는것이 바람직하다. 반대로 너무 큰 버퍼를 지정해버리면 
메모리가 불필요하게 낭비 될 수 있기 때문에 이점을 주의하기 바란다.&lt;BR&gt;&lt;BR&gt;참고로 jsp page buffer size는 지정해주지 
않는경우 default로 8K로 지정된다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;member variable&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;Servlet/JSP는 기본적으로 
Multi Thread로 동작하기 때문에, Servlet과 JSP 내에서 선언된 멤버 변수들은 각 Thread간에 공유가 된다.&lt;BR&gt;그래서 이 
변수들을 read/write할경우에는 sychronized method로 구성해야 하는데, 이 synchronized는 속도 저하를 유발할 수 
있기 때문에, member 변수로는 read 만 하는 객체를 사용하는게 좋다.&lt;BR&gt;&lt;BR&gt;특히 Servlet이나 JSP에서 Data Base 
Connection을 멤버 변수로 선언하여 Thread간 공유하는 예가 있는데, 이는 별로 좋지 않은 프로그래밍 방법이고, 이런 형태의 패턴은 
Servlet이 단 하나만 실행되거나 하는것과 같은 제약된 조건 아래에서만 사용해야 한다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Out of Memory in 
file upload&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;JSP에서 File upload control을 사용하는 경우가 많다. 이 control을 구현하는 
과정에서 upload되는 파일 내용을 몽땅 메모리에 저장했다가 업로드가 끝나면 한꺼번에 file에 writing하는 경우가 있는데, 이는 큰 
사이즈의 파일을 업로드할때, 파일 사이즈만큼의 메모리 용량을 요구하기 때문에, 자칫하면 Out Of Memory 에러를 발생 시킬 수 
있다.&lt;BR&gt;File upload는 buffer를 만들어서 읽고, 파일에 쓰는 작업을 병행하도록 해야한다.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;3) JDBC 
Programming&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Connection Leak&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;JDBC Programming에서 가장 대표적으로 
발생되는 문제가 Connection Leak이다. Database Connection을 사용한후에 close않아서 생기는 
문제인데,Exception이 발생하였을때도 반드시 Connection을 close하도록 해줘야한다.&lt;BR&gt;&lt;BR&gt;&lt;IMG 
src=&quot;http://www.j2eestudy.co.kr/lecture_data/lecture0201_1_24_image025.jpg&quot; 
border=1&gt;&lt;BR&gt;
&lt;P style=&quot;COLOR: green&quot;&gt;&lt;그림. Connection close의 올바른 예&gt;&lt;/P&gt;&lt;BR&gt;&lt;U&gt;Out of 
memory in Big size query result&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;SQL문장을 Query하고 나오는 resultset을 사용할때, 
모든 resultset의 결과를 Vector나 hashtable등을 이용해서 메모리에 저장해놓는 경우가 있다. 이런 경우에는 평소에는 문제가 
없지만, SQL Query의 결과가 10만건이 넘는것과 같은 대용량일때 이 모든 데이타를 메모리 상에 저장할려면 Out Of Memory가 
나온다.&lt;BR&gt;Query의 결과값을 처리할때는 ResultSet을 직접 리턴받아서 사용하는것이 메모리 활용면에서 좀더 
바람직하다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Close stmt &amp; resultset&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;JDBC에서 Resultset이나 
Statement 객체는 기본적으로 Connection을 close하게 되면 자동으로 닫히게 된다. 그러나 WAS나 Servlet 
Container의 경우에는 성능향상을 위해서 Connection Pooling 기법을 이용해서 Connection을 관리하기 때문에 
Connection Pooling에서 Connection을 close하는것은 실제로 close하는것이 아니라 Pool에 반환하는 과정이기 때문에 
해당 Connection에 연계되어 사용되고 있는 Statement나 ResultSet이 닫히지 않는다.&lt;BR&gt;&lt;BR&gt;Connection 
Pooling에서 Statement와 ResultSet을 사용후에 닫아주지 않으면 Oracle에서 too many open cursor와 같은 
에러가 나오게된다. (Statement는 DB의 Cursor와 mapping이 된다.)&lt;BR&gt;&lt;BR&gt;&lt;B&gt;4) EJB 
Programming&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;When we use EJB?&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;EJB는 분명 강력하고 유용한 개발 기술임에는 
틀림이 없다. 그러나 EJB의 장점과 용도를 모르고 사용하면 오히려 안쓰는것만 못한 경우가 많다. &lt;BR&gt;각 EJB 모델 (Session 
Bean,Entity Bean)이 어떤때 유용한지를 알고 사용하고, 정확한 Transaction Model등을 결정해서 사용해야 
한다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Reduce JNDI look up&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;위에서도 설명했듯이 EJB의 Home Interface를 
lookup 해오는 과정은 객체의 Serialization/DeSerialization을 동반하기 때문에, 시스템 성능에 영향을 줄 수 있다. 
EJB Home을 한번 look up한후에는 Hashtable등에 저장해서 반복해서 Remote Call(Serialization / 
DeSerialization)하는 것을 줄이는게 좋다.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Do not use hot deploy in production 
mode&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;WAS Vendor 마다 WAS 운영중에 EJB를 Deploy할 수 있는 HotDeploy 기능을 제공한다. 그러나 
이는 J2ee spec에 있는 구현이 아니라 각 vendor마다 개발의 편의성을 위해서 제공하는 기능이다. 운영중에 EJB를 내렸다 올리는것은 
위험하다. (Transaction이 수행중이기 때문에) Hot Deploy 기능은 개발중에만 사용하도록 하자.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;5) JVM 
Memory tuning&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;U&gt;Basic Tuning&lt;/U&gt;&lt;BR&gt;&lt;BR&gt;Application을 개발해놓고, 운영환경으로 
staging할때 별도의 JVM 튜닝을 하지 않는 경우가 많다. 튜닝이 아니더라도 최소한의 메모리 사이즈와 HotSpot VM 모델 
(server/client)는 설정해줘야지 어느정도의 Application의 성능을 보장 받을 수 있다. 최소한 메모리 사이즈와 VM모델정도는 
설정을 해주고 운영을 하도록 하자.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; COLOR: white; PADDING-TOP: 5px&quot; 
width=&quot;100%&quot; bgColor=red&gt;&lt;FONT size=2&gt;&lt;B&gt;7. 결론&lt;/B&gt;&lt;/FONT&gt; 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;J2EE Application의 병목구간을 확인하기 위해서는 그 문제를 발견하고 
툴과 경험을 이용해서 문제의 원인을 발견하고 제거해야한다.&lt;BR&gt;&lt;BR&gt;대부분의 WAS또는 User Application의 slow down이나 
hang up은 Thread dump를 통한 분석을 통해서 대부분 발견 및 해결을 할 수 있다.&lt;BR&gt;&lt;BR&gt;그외에 부분 JVM이나 
WebServer,Network 등에 대해서는 별도의 경험과 Log 분석등을 알아내야하고 DB에 의한 slow down이나 hang up현상은 
DB 자체의 분석이 
필요하다.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>오라클 LOCK걸린 경우 Session Kill</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5397118"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5397118</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-08T15:14:23Z</updated>
	    <published>2005-12-08T15:14:23Z</published>
	    <content type="html">
	    	&lt;TABLE 
style=&quot;PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; PADDING-TOP: 10px&quot; 
cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;98%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colSpan=2&gt;&lt;B&gt;오라클 LOCK걸린 경우 Session Kill&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=dotline_hor03 colSpan=2&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 5px&quot;&gt;
&lt;TD&gt;&lt;/TD&gt;
&lt;TD align=right&gt;&lt;A href=&quot;http://kr.blog.yahoo.com/clark7877/archive/2005/11/10&quot; target=&quot;_blank&quot;&gt;2005/11/10 오후 
3:24&lt;/A&gt; | &lt;A href=&quot;http://kr.blog.yahoo.com/clark7877/folder/9149.html&quot; target=&quot;_blank&quot;&gt;&lt;U&gt;Administration&lt;/U&gt;&lt;/A&gt; 
&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; PADDING-TOP: 10px&quot; 
vAlign=top&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;98%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD 
style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; WORD-BREAK: break-all; PADDING-TOP: 10px&quot; 
vAlign=top&gt;
&lt;P align=justify&gt;&lt;FONT size=2&gt;오라클 LOCK걸린 경우 Session Kill&lt;BR&gt;&lt;BR&gt;일반적으로 LOCK은 다음과 
같이 해결합니다.&lt;BR&gt;&lt;BR&gt;아래의 쿼리를 system 계정에서 실행합니다.&lt;BR&gt;&lt;BR&gt;select 
a.sid,&lt;BR&gt;decode(a.type,&lt;BR&gt;'MR', 'Media Recovery',&lt;BR&gt;'RT', 'Redo 
Thread',&lt;BR&gt;'UN', 'User Name',&lt;BR&gt;'TX', 'Transaction',&lt;BR&gt;'TM', 'DML',&lt;BR&gt;'UL', 
'PL/SQL User Lock',&lt;BR&gt;'DX', 'Distributed Xaction',&lt;BR&gt;'CF', 'Control 
File',&lt;BR&gt;'IS', 'Instance State',&lt;BR&gt;'FS', 'File Set',&lt;BR&gt;'IR', 'Instance 
Recovery',&lt;BR&gt;'ST', 'Disk Space Transaction',&lt;BR&gt;'IR', 'Instance 
Recovery',&lt;BR&gt;'TS', 'Temp Segment',&lt;BR&gt;'IV', 'Library Cache 
Invalidation',&lt;BR&gt;'LS', 'Log Start or Switch',&lt;BR&gt;'RW', 'Row Wait',&lt;BR&gt;'SQ', 
'Sequence Number',&lt;BR&gt;'TE', 'Extend Table',&lt;BR&gt;'TT', 'Temp Table',&lt;BR&gt;a.type) 
lock_type,&lt;BR&gt;decode(a.lmode,&lt;BR&gt;0, 'None', /* Non Lock equivalent */&lt;BR&gt;1, 
'Null', /* N */&lt;BR&gt;2, 'Row-S (SS)', /* L */&lt;BR&gt;3, 'Row-X (SX)', /* R */&lt;BR&gt;3, 
'Row-X (SX)', /* R */&lt;BR&gt;4, 'Share', /* S */&lt;BR&gt;5, 'S/Row-X (SSX)', /* C 
*/&lt;BR&gt;6, 'Exclusive', /* X */&lt;BR&gt;to_char(a.lmode)) 
mode_held,&lt;BR&gt;decode(a.request,&lt;BR&gt;0, 'None', /* Mon Lock equivalent */&lt;BR&gt;1, 
'Null', /* N */&lt;BR&gt;2, 'Row-S (SS)', /* L */&lt;BR&gt;3, 'Row-X (SX)', /* R */&lt;BR&gt;4, 
'Share', /* S */&lt;BR&gt;5, 'S/Row-X (SSX)', /* C */&lt;BR&gt;6, 'Exclusive', /* X 
*/&lt;BR&gt;to_char(a.request)) mode_requested,&lt;BR&gt;to_char(a.id1) lock_id1, 
to_char(a.id2) lock_id2&lt;BR&gt;from v$lock a&lt;BR&gt;where (id1,id2) in&lt;BR&gt;(select b.id1, 
b.id2 from v$lock b where b.id1=a.id1 and&lt;BR&gt;b.id2=a.id2 and 
b.request&gt;0);&lt;BR&gt;&lt;BR&gt;( 위의 Query를 실행시키면 다음과 같은 내용이 출력된다.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT 
size=2&gt;&lt;STRONG&gt;SID LOCK_TYPE &amp;nbsp;&amp;nbsp;MODE_HELD&amp;nbsp; MODE_REQUE&amp;nbsp;&amp;nbsp; 
LOCK_ID1&amp;nbsp;&amp;nbsp; LOCK_ID2&lt;BR&gt;--- --------------- ---------- ---------- 
-------- ------------------&lt;BR&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction&amp;nbsp;&amp;nbsp; &lt;FONT 
color=#ff0000&gt;Exclusive&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;None&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;262172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
90&lt;BR&gt;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Transaction&amp;nbsp;&amp;nbsp; 
None&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
Exclusive&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 
262172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&lt;BR&gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; 
Transaction&amp;nbsp;&amp;nbsp; 
None&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
Exclusive&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
262172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;SID 6과 
9는 SID 5가 걸고 있는 Lock이 풀리기를 기다리고 있음을 알 수&lt;BR&gt;있다.&lt;BR&gt;&lt;BR&gt;SID 5번을 죽이고 싶다면 다음과 같이 하면 
됩니다.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;SELECT sid, serial#, 
username from v$session where sid = ?? (여기에서는 5)&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;위의 값을 
가지고 다음과 같이 세션을 Kill 하면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;&lt;FONT 
color=#0000ff&gt;ALTER SYSTEM KILL SESSION 'SID, SERIAL#'; (위의 쿼리로 나온 
값)&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;참고로 다음과 같은 사항이 도움이 될까 하여 적어 봅니다..&lt;BR&gt;&lt;BR&gt;* 다음 Query는 
Lock과 관련된 테이블을 출력해 준다.&lt;BR&gt;&lt;BR&gt;column username format a10&lt;BR&gt;column lockwait 
format a10&lt;BR&gt;column sql_text format a80&lt;BR&gt;column object_owner format 
a14&lt;BR&gt;column object format a15&lt;BR&gt;select b.username username, c.sid sid, 
c.owner object_owner,&lt;BR&gt;c.object object, b.lockwait, a.sql_text SQL&lt;BR&gt;from 
v$sqltext a, v$session b, v$access c&lt;BR&gt;where a.address=b.sql_address 
and&lt;BR&gt;a.hash_value=b.sql_hash_value and&lt;BR&gt;b.sid = c.sid and c.owner != 
'SYS';&lt;BR&gt;/&lt;BR&gt;&lt;BR&gt;===&gt; 위의 Query를 실행하면 다음과 같은 결과가 출력된다.&lt;BR&gt;&lt;BR&gt;USERNAME SID 
OBJECT_OWNER OBJECT LOCKWAIT&lt;BR&gt;--------------- --- ------------- -------------- 
----------&lt;BR&gt;SQL&lt;BR&gt;---------------------------------------------------------------&lt;BR&gt;LTO2 
6 LTO EMP C3D320F4&lt;BR&gt;update lto.emp set empno =25 where empno=7788&lt;BR&gt;LTO3 9 
LTO EMP C3D320C8&lt;BR&gt;delete from lto.emp where empno=7788&lt;BR&gt;LTO 5 LTO 
DEPT&lt;BR&gt;insert into lto.dept values (60,'PROGRAMMER','LOS ANGELOS')&lt;BR&gt;&lt;BR&gt;여기서는 
USERNAME에 나와있는 유저가 OBJECT에 나와있는 테이블을&lt;BR&gt;수정하려고&lt;BR&gt;함을 나타낸다. LT02, LT03는 LT0가 
Commit, Rollback 하기를 기다리고&lt;BR&gt;있음을&lt;BR&gt;알 수 있다. 하지만 여기에는 가장 최근의 DML 명령 하나만 나와있기 
때문에&lt;BR&gt;&lt;BR&gt;여기 나온 명령이 반드시 Lock을 걸고 있는 명령이라고 단정지을 수는 없다.&lt;BR&gt;&lt;BR&gt;관련된 
프로세스&lt;BR&gt;---------------&lt;BR&gt;* 다음 Query를 실행해 보면 프로세스와 관련된 정보를 얻을 수 
있다.&lt;BR&gt;&lt;BR&gt;column &quot;ORACLE USER&quot; format a11&lt;BR&gt;column SERIAL# format 
9999999&lt;BR&gt;column &quot;OS USER&quot; format a8&lt;BR&gt;select substr(s.username,1,11) &quot;ORACLE 
USER&quot;, p.pid &quot;PROCESS ID&quot;,&lt;BR&gt;s.sid &quot;SESSION ID&quot;, s.serial#, osuser &quot;OS 
USER&quot;,&lt;BR&gt;p.spid &quot;PROC SPID&quot;,s.process &quot;SESS SPID&quot;, s.lockwait &quot;LOCK 
WAIT&quot;&lt;BR&gt;from v$process p, v$session s, v$access a&lt;BR&gt;where a.sid=s.sid 
and&lt;BR&gt;p.addr=s.paddr and&lt;BR&gt;s.username != 'SYS';&lt;BR&gt;/&lt;BR&gt;&lt;BR&gt;* 위의 Query를 실행하면 
다음과 같은 결과가 출력된다.&lt;BR&gt;&lt;BR&gt;ORACLE PROCESS SESSION SERIAL# OS USER PROC SESS 
LOCKWT&lt;BR&gt;USER ID ID SPID SPID&lt;BR&gt;------ ------- ------- ------- ------- ---- 
---- ------&lt;BR&gt;LTO 19 5 31 usupport 17312 17309&lt;BR&gt;LTO2 25 6 43 usupport 17313 
17310 C3D320F4&lt;BR&gt;LTO3 26 9 1 usupport 17314 17311 C3D320D8&lt;BR&gt;&lt;BR&gt;이 때는 다음과 같이 
조치한다.&lt;BR&gt;&lt;BR&gt;1. LTO에게 Commit, Rollback 할 것을 요구한다.&lt;BR&gt;2. SQLDBA&gt;ALTER SYSTEM 
KILL SESSION '5,31';&lt;BR&gt;3. %kill -9 17309 (유닉스상의 Shadown Process)&lt;BR&gt;stop/id= 
(PROC SPID=SESS SPID on vms running single task)&lt;BR&gt;&lt;BR&gt;여기서 SYS 유저는 제외시켰는데 필요하다면 
Query의 Where 조건에서&lt;BR&gt;s.username != 'SYS' 부분을 삭제하면 된다.&lt;BR&gt;&lt;BR&gt;CATBLOCK.SQL &amp; 
UTLLOCKT.SQL&lt;BR&gt;---------------------------&lt;BR&gt;$ORACLE_HOME/rdbms/admin 디렉토리에 있는 
스크립트 가운데 catblock.sql과&lt;BR&gt;&lt;BR&gt;utlockt.sql을 사용하여서 Lock 상황을 쉽게 파악할 수 있다. 이들은 
다음과&lt;BR&gt;&lt;BR&gt;같이 실행한다.&lt;BR&gt;&lt;BR&gt;%cd $ORACLE_HOME/rdbms/admin&lt;BR&gt;%sqldba lmode=y 
(svrmgrl&lt;BR&gt;SVRMGR&gt;connect internal&lt;BR&gt;SVRMGR&gt;@catblock&lt;BR&gt;&lt;BR&gt;결과는 다음 
Query 문으로 알아 본다.&lt;BR&gt;&lt;BR&gt;column waiting_session format a8&lt;BR&gt;select lpad(' 
',3*(level-1)) || 
waiting_session,&lt;BR&gt;lock_type,&lt;BR&gt;mode_requested,&lt;BR&gt;mode_held,&lt;BR&gt;lock_id1,&lt;BR&gt;lock_id1,&lt;BR&gt;lock_id2&lt;BR&gt;from 
lock_holders&lt;BR&gt;connect by prior waiting_session = holding_session&lt;BR&gt;start with 
holding_session is null;&lt;BR&gt;&lt;BR&gt;위의 Query에 의한 출력은 다음과 같다.&lt;BR&gt;&lt;BR&gt;WAITING_ 
LOCK_TYPE MODE_REQUE MODE_HELD LOCK_ID1 LOCK_ID2&lt;BR&gt;&lt;BR&gt;-------- 
----------------- ---------- ---------- ---------- ----------&lt;BR&gt;5 None&lt;BR&gt;6 
Transaction Exclusive Exclusive 262172 90&lt;BR&gt;9 Transaction Exclusive Exclusive 
262172 90&lt;BR&gt;&lt;BR&gt;여기서 Session 6, Session 9가 Session 5를 기다리고 있음을 알 수 
있다.&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;출처: &lt;A 
href=&quot;http://blog.naver.com/kerne1.do?Redirect=Log&amp;logNo=20011074431&quot; 
target=_blank&gt;&lt;U&gt;http://blog.naver.com/kerne1.do?Redirect=Log&amp;logNo=20011074431&lt;/U&gt;&lt;/A&gt; 
&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
	    </content>
	    	</entry>
    	<entry>
	    <title>DB Lock 세션 찾기</title>
		<link rel="alternate" type="text/html" href="http://blog.daum.net/dongeunpa/5395015"/>
		<id>tag:blog.daum.net,2009:dongeunpa.5395015</id>
	    <author>
		    <name>동은아빠</name>
	    </author>
	    <updated>2005-12-08T11:41:53Z</updated>
	    <published>2005-12-08T11:41:53Z</published>
	    <content type="html">
	    	
&lt;P&gt;select a.sid, a.serial# &lt;BR&gt;from v$session a, v$lock b, dba_objects c 
&lt;BR&gt;where a.sid=b.sid and &lt;BR&gt;b.id1=c.object_id and &lt;BR&gt;b.type='TM' and 
&lt;BR&gt;c.object_name='AAAA'; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kill Locked DB Session&lt;/P&gt;
&lt;P&gt;alter system kill session '150, 5678'; &lt;/P&gt;
	    </content>
	    	</entry>
      </feed>
