posted by 구름너머 2005. 11. 25. 15:48

exec

public Process exec(String command)
throws IOException
지정된 스트링 커멘드를, 독립한 프로세스로 실행합니다.

command 인수는 토큰에 해석되어 그 후 독립한 프로세스로서 실행됩니다. 토큰의 구문 분석은, 다음의 호출로 작성되는 StringTokenizer 가 실행합니다.

new StringTokenizer(command)
이 풀어, 문자 카테고리가 더 이상 변경될 것은 없습니다. 이 메소드의 기능은 exec(command, null) 와 전혀(완전히) 같습니다.
파라미터:
command - 지정된 시스템 커멘드
반환값:
서브 프로세스를 관리하는 Process 오브젝트
예외:
SecurityException - 보안 매니저가 존재해, 그 checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생할 경우

=========================================================

사용 예:

String[] cmd = {"/devweb/batch.sh", strA, strB, strC, ....}; <== 절대경로 및 실행명령의 인자가 있을시 인자값(들)
Runtime.getRuntime().exec( cmd );

exec

public Process exec(String []cmdarray)
throws IOException
지정된 커멘드와 인수를, 독립한 프로세스로 실행합니다.

cmdarray 인수로 지정한 커멘드 토큰은, 독립한 프로세스로 커멘드로서 실행됩니다. 이 메소드의 기능은 exec(cmdarray, null) 와 전혀(완전히) 같습니다.

보안 매니저가 존재하는 경우, 그 checkExec 메소드가, 배열 cmdarray 의 1 번째의 요소를 인수로서 불려 갑니다. 이 결과, 보안 예외가 발생할 가능성이 있습니다.

파라미터:
cmdarray - 실행하는 커멘드와 인수를 포함한 배열
반환값:
서브 프로세스를 관리하는 Process 오브젝트
예외:
SecurityException - 보안 매니저가 존재해, 그 checkExec 메소드가 서브 프로세스의 작성을 허가하지 않는 경우
IOException - 입출력 에러가 발생할 경우
관련 항목:
exec(java.lang.String[], java.lang.String[]) s , SecurityManager.checkExec(java.lang.String)

'JAVA' 카테고리의 다른 글

Hashtable과 HashMap의 차이점  (0) 2006.03.29
Jsp 기초 - 스크립트 프로그래밍  (0) 2006.02.17
StringTokenizer for JDK1.5.0  (0) 2005.11.25
weblogic JDBC 설정...  (0) 2005.11.04
javadoc  (0) 2005.10.01
posted by 구름너머 2005. 11. 25. 15:46

http://xrath.com/devdoc/jdk1.5/ko/api/java/util/StringTokenizer.html


java.util
클래스 StringTokenizer
java.lang.Object
java.util.StringTokenizer

모든 구현된 인터페이스:
Enumeration <Object >

--------------------------------------------------------------------------------

public class StringTokenizerextends Object implements Enumeration <Object >

StringTokenizer 클래스를 사용하면(자), 어플리케이션으로 캐릭터 라인을 토큰에 분할할 수 있습니다. 토큰화의 메소드는,StreamTokenizer 클래스에서 사용되고 있는 메소드보다 한층 더 간단합니다. StreamTokenizer 메소드에서는, 식별자, 숫자, 인용 캐릭터 라인은 구별되지 않습니다. 또, 코멘트를 인식해 스킵 하는 일도 없습니다.

단락 문자 (토큰을 나누는 문자)는, 클래스의 작성시, 또는 토큰을 얻을 때마다 지정할 수 있습니다.

StringTokenizer 의 인스턴스는, 작성시의 returnDelims 플래그의 값이 true 나 false 등에 의해서, 동작이 다릅니다.

플래그가 false 의 경우는, 단락 문자는 토큰을 나눌 뿐(만큼)의 것이라고 보여진다. 토큰은 단락지어 문자가 아닌 문자가 1 개 이상 연속하고 있는 부분이다
플래그가 true 의 경우는, 단락 문자는 그 자체가 토큰이라고 보여진다. 토큰은, 1 개의 단락 문자인가, 단락 문자가 아닌 문자가 1 개 이상 연속하고 있는 부분이다
StringTokenizer 오브젝트는 내부적으로, 토큰화 되는 캐릭터 라인내의 현재의 위치를 관리합니다. 몇개의 오퍼레이션은, 이 현재의 위치가 처리된 문자의 끝에 진행하는 것이 있습니다.

토큰은,StringTokenizer 오브젝트를 작성하는데 사용된 캐릭터 라인의 부분 캐릭터 라인을 취득하는 것에 의해 돌려주어집니다.

사용예를 다음에 나타냅니다.

StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) { System.out.println(st.nextToken());
}
화면에는 다음과 같이 표시됩니다.

this is a test
StringTokenizer 는, 호환성을 유지하는 목적으로 보관 유지되고 있는 유산 클래스이며,

신규 코드에서는 사용이 추천 되고 있지 않습니다.

이 기능의 사용을 생각하고 있다면,String 의 split 메소드 또는 java.util.regex 패키지를 대신에 사용하는 것을 추천합니다.

다음의 예는,String.split 메소드를 사용해 캐릭터 라인을 기본적인 토큰에 분할하는 방법을 나타냅니다.

String[] result = "this is a test". split("\\s");
for (int x=0;
x<result.length;
x++) System.out.println(result[x]);

화면에는 다음과 같이 표시됩니다.

this is a test


도입된 버젼:
JDK1. 0
관련 항목:
StreamTokenizer

'JAVA' 카테고리의 다른 글

Jsp 기초 - 스크립트 프로그래밍  (0) 2006.02.17
Runtime.getRuntime().exec( cmd )  (1) 2005.11.25
weblogic JDBC 설정...  (0) 2005.11.04
javadoc  (0) 2005.10.01
Definition of JDBC type 4 driver  (0) 2005.09.06
posted by 구름너머 2005. 11. 4. 13:10

1. 현상
현재 Oracle 8.0.6.3.0에 WL6.1 sp2를 이용하여
Thin 드라이브로 Connection Pool 연결하여 사용하던 중
Oracle 9.2.0.1.0나 9.2.0.4.0에 연결시
ORA-00600 에러가 남!
JDK : 1.4.2_07
Oracle Client : 9i

java.sql.SQLException: ORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:889)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1681)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:5303)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:544)
at weblogic.jdbc.pool.Statement.executeQuery(Statement.java:850)
at weblogic.jdbc.rmi.internal.StatementImpl.executeQuery(StatementImpl.java:79)
at weblogic.jdbc.rmi.SerialStatement.executeQuery(SerialStatement.java:80)
at com.pjedf.df.db.JStatement.executeQuery(JStatement.java:81)
at com.kt.icbs.dao.DAOBCDG110E.confirmUserInfo(DAOBCDG110E.java:87)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110EBean.confirmUserInfo(SBCDG110EBean.java:56)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110ESession_bsu6fg_EOImpl.confirmUserInfo(SBCDG110ESession_bsu6fg_EOImpl.java:169)
at com.kt.icbs.sessionbean.SBCDG110E.SBCDG110ESession_bsu6fg_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:166)
at weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:92)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:112)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:262)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:229)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy684.confirmUserInfo(Unknown Source)
at com.kt.icbs.fc.FCBCDG110E.confirmUserInfo(FCBCDG110E.java:45)
at jsp_servlet._bcdg._bcdg100.__bcdg111e._jspService(__bcdg111e.java:204)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

2.조치
웹로직 구동시 클래스 패스를 변경함.
근거는 아래 참조.
☞ 결과 : 성공 !!!

========================================================================================
oci드라이브는 기본적으로 웹로직이 깔려있는 서버에 오라클 클라이언트가 깔려야 합니다.
그리고 thin드라이브는 그것이 필요없죠..
실무에서는 thin 드라이브를 대부분 사용합니다.
oci드라이브에는 특수한 몇가지 기능이 있지만 그기능을 잘 아는 개발자도 없고
지금까지 검정된것은 thin드라이브 이기때문에 많이 사용합니다.
thin드라이브는 해당 오라클 버젼에 맞는것을 다운받아서

웹로직 서버 클래스 패스에 weblogic.jar보다 앞에 적어줘야 합니다.

왜냐면 weblogic.jar에도 thin드라이브가 있어서
앞에다 적어야 해당 드라이브가 적용되는 것입니다
from cafe.daum.net/weblogic 주인장....
========================================================================================

'JAVA' 카테고리의 다른 글

Runtime.getRuntime().exec( cmd )  (1) 2005.11.25
StringTokenizer for JDK1.5.0  (0) 2005.11.25
javadoc  (0) 2005.10.01
Definition of JDBC type 4 driver  (0) 2005.09.06
Definition of JDBC type 3 driver  (0) 2005.09.06
posted by 구름너머 2005. 10. 1. 12:41
javadoc -d path packagename1 packagename2
패키지이름을 나열하니 document에 세개의 창이 생기네요 ^^


조경현 wrote:
> javadoc을 이용해 document를 작성하려고 합니다
>
> javadoc -d path pakagename
>
> 하면 패키지내의 클래스들이 왼쪽창에 일렬로 생깁니다.
> 그런데 제가 원하는 것은 패키지,클래스, 메소드 이렇게 세개의 창이 생기게 하고 싶은데 클래스, 메소드 창밖에 생기질 않습니다.
> -help를 참고하여 이것저것 테스트 해보았는데 잘 안돼네요.
> 혹시 해결법이나 How to Write Doc Comments
> for the JavadocTM Tool 번역문서 있으신분 올려주시면 감사하겠습니다..

'JAVA' 카테고리의 다른 글

StringTokenizer for JDK1.5.0  (0) 2005.11.25
weblogic JDBC 설정...  (0) 2005.11.04
Definition of JDBC type 4 driver  (0) 2005.09.06
Definition of JDBC type 3 driver  (0) 2005.09.06
Definition of JDBC type 2 driver  (0) 2005.09.06
posted by 구름너머 2005. 9. 6. 14:30
Definition of JDBC type 4 driver

Image:Native_Protocol_driver.png
Schematic of the Native-Protocol driver

The JDBC type 4 driver, also known as the native-protocol driver is a database driver implementation that converts JDBC calls directly into the vendor-specific database protocol.

The type 4 driver is written completely in Java and is hence platform independent. It provides better performance over the type 1 and 2 drivers as it does not have the overhead of conversion of calls into ODBC or database API calls. Unlike the type 1 and 2 drivers, it does not need associated software to work.

As the database protocol is vendor-specific, separate drivers, usually vendor-supplied, need to be used to connect to the database.

Also see

'JAVA' 카테고리의 다른 글

weblogic JDBC 설정...  (0) 2005.11.04
javadoc  (0) 2005.10.01
Definition of JDBC type 3 driver  (0) 2005.09.06
Definition of JDBC type 2 driver  (0) 2005.09.06
Definition of JDBC type 1 driver  (0) 2005.09.06
posted by 구름너머 2005. 9. 6. 14:28
Definition of JDBC type 3 driver

Image:Network_Protocol_driver.png
Schematic of the Network Protocol driver

The JDBC type 3 driver, also known as the network-protocol driver is a database driver implementation which makes use of a middle-tier between the calling program and the database. The middle-tier (application server) converts JDBC calls directly or indirectly into the vendor-specific database protocol.

This differs from the type 4 driver in that the protocol conversion logic resides not at the client but in the middle-tier. However, like type 4 drivers, the type 3 driver is written entirely in Java.

The same driver can be used for multiple databases. It depends on the number of databases the middleware has been configured to support. The type 3 driver is platform-independent as the platform-related differences are taken care by the middleware. Also, making use of the middleware provides additional advantages of security and firewall access.

Also see

'JAVA' 카테고리의 다른 글

javadoc  (0) 2005.10.01
Definition of JDBC type 4 driver  (0) 2005.09.06
Definition of JDBC type 2 driver  (0) 2005.09.06
Definition of JDBC type 1 driver  (0) 2005.09.06
Sun에서 제공하는 J2EE BluePrints  (0) 2005.09.06
posted by 구름너머 2005. 9. 6. 14:27
Definition of JDBC type 2 driver

Image:Native_API_driver.png
Schematic of the Native API driver

The JDBC type 2 driver, also known as the Native-API driver is a database driver implementation that uses the client-side libraries of the database. The driver converts JDBC method calls into native calls of the database API.

The type 2 driver is not written entirely in Java as it interfaces with non-Java code that makes the final database calls. The driver is compiled for use with the particular operating system. For platform interoperability, the Type 4 driver, being a full-Java implementation, is preferred over this driver.

However the type 2 driver provides more functionality and performance that the type 1 driver as it does not have the overhead of the additional ODBC function calls.

See also

posted by 구름너머 2005. 9. 6. 14:26
Definition of JDBC type 1 driver

Image:JDBC_ODBC.png
Schematic of the JDBC-ODBC bridge

The JDBC type 1 driver, also known as the JDBC-ODBC bridge is a database driver implementation that employs the ODBC driver to connect to the database. The driver converts JDBC method calls into ODBC function calls. The bridge is usually used when there is no pure-Java driver available for a particular database.

The driver is implemented in the sun.jdbc.odbc.JdbcOdbcDriver class and comes with the Java 2 SDK, Standard Edition.

The driver is platform-dependent as it makes use of ODBC which in turn depends on native libraries of the operating system. Also, using this driver has got other dependencies such as ODBC must be installed on the computer having the driver and the database which is being connected to must support an ODBC driver. Hence the use of this driver is discouraged if the alternative of a pure-Java driver is available.

See also