레이블이 Middleware인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Middleware인 게시물을 표시합니다. 모든 게시물 표시

2016년 7월 28일 목요일

[iAS] Oracle9i AS의 주요 모듈 : OC4J

Oracle9iAS는 다양한 모듈들로 구성되어 있다. 그 중에서 J2EE 기반의 다양한 웹 애플리케이션들의 실행과 관리를 담당하는 핵심 모듈이 바로 OC4J(Oracle Containers for J2EE)이다. 본 장에서는 9iAS의 핵심 서버 모듈인 OC4J의 내부 구조와 환경 파일들에 대해서 소개한다.
1. OC4J의 내부 구조
OC4J의 내부 구조는 크게 다음과 같이 구성되어 있다 :
  • OHS와 OC4J를 연결하는 모듈 mod_oc4j
  • 웹 애플리케이션을 실행해 주는 Web container와 EJB 애플리케이션을 실행해 주는 EJB container
  • J2EE 기반의 다양한 시스템 서비스 모듈들


1.1 애플리케이션의 수행 구조
OC4J는 J2SE(Java 2 Platform Standard Edition) 인프라 구조를 지원한다. 따라서, Web Container와 EJB Container는 J2SE VM(Virtual Machine)을 사용한다. Web Container 상에서 일반적인 웹 애플리케이션이, EJB Container 상에서 EJB 기반의 애플리케이션이 실행되어지게 된다.
OC4J 상에서 수행되는 애플리케이션들은 J2SE 상의 표준 구조에 맞추어 개발되어야 한다. 일반적으로 다음과 같이 구성된다 :
  • 사용자 인터페이스 : JSP 혹은 dynamic HTML 형태로 구성된다. 
  • 비즈니스 로직 : 일반적인 Java Beans로 개발되거나 EJB 형태로 개발된다. EJB는 J2EE가 제공하는 다양한 시스템 서비스(JNDI, JDBC, JTA, JCA, JAAS, JavaMail등)를 활용한다.
EJB로 개발된 애플리케이션은 OC4J 내에서 애플리케이션들 사이의 상호 호출을 통해서 호출될 수도 있고 외부 클라이언트에서 직접 호출될 수도 있다. 외부에서 직접 호출되는 경우에는 ORMI(Oracle Remote Method Invocation) 프로토콜을 통해서 실행이 이루어지게 된다. 이 때 사용되어지는 RMI 포트 번호는 rmi.xml 안에 지정하여 주도록 되어 있다. OC4J가 실행되는 환경 내에서 RMI 포트 번호는 서로 상이해야 한다. 기본 포트 번호는 23791이다.
1.2 OHS와 OC4J의 연결 구조
OC4J는 웹 애플리케이션의 실행에 대한 요청을 OHS(Oracle HTTP Server)를 통해서 받는다. 즉, 사용자가 ‘http://www.host-name.co.kr/app-name/module.jsp’와 같이 쳐 주거나 이에 해당하는 링크를 누르게 되면 이 HTTP 프로토콜 기반의 웹 요청을 OHS가 먼저 받게 된다. OHS는 접수한 요청이 자신이 처리할 수 없는 요청임을 인지하면 해당 애플리케이션의 수행을 다시 OC4J로 전달하게 된다. 그러면 OC4J가 해당 애플리케이션을 찾아서 실행시켜 주고 그 수행 결과만을 다시 OHS에 넘겨 주는 것이다. 이 때, OHS와 OC4J 사이의 요청 및 실행 결과 전달을 위한 모듈이 필요한데 이러한 역할을 담당하는 모듈이 바로 mod_oc4j이다. Mod_oc4j는 OHS와 OC4J 사이에서 AJP(Apache Jserv Protocol)을 활용하여 실행 요청과 실행 결과값들을 전달하고 업무 균형을 유지한다. Mod_oc4j의 내부 프로세스는 다음의 그림과 같다 :
mod_oc4j 는 내부적으로 OC4J로의 요청 전달을 관리하기 위한 공유 메모리 테이블을 가지고 있다. 이 테이블에는 수행이 시작된 OC4J 프로세스 정보가 저장된다. Mod_oc4j가 OC4J로 전달될 요청을 받으면 이 테이블 중에서 적절한 OC4J 프로세스를 선택하여 해당 프로세스에 요청을 할당하게 된다.

OC4J 프로세스는 9iAS 상의 모든 프로세스를 관리를 담당하는 OPMN(Oracle Process Monitoring and Notification) 프로세스에 의하여 시작 및 종료되며, 주기적으로 수행 상태가 모니터링 된다. 만약 OPMN 프로세스가 특정 OC4J 프로세스가 작동하지 않음을 발견하면 해당 OC4J 프로세스에 할당된 모든 웹 요청을 수거하여 다른 OC4J 프로세스로 할당하여 주게 된다. 이를 통해 fail-over 메커니즘이 지원되어진다.
2. OC4J 환경 설정
OC4J는 다음과 같은 종류의 환경 설정 파일들로 구성되어 있다 : 
OC4J는 다음과 같은 3가지 그룹의 환경 설정 파일들을 가지고 있다 :
  • OHS Server 환경 설정 파일(mod_oc4j 관련 파일) : OHS와 OC4J를 연결해 주는 모듈인 mod_oc4j의 수행을 관리하기 위한 설정값들을 가지고 있는 파일이다. 역시 $ORACLE_HOME/j2ee/home/config 디렉토리에 위치한다.
  • OC4J Server 환경 설정 파일들 : OC4J 서버를 관리하기 위한 다양한 설정값들을 가지고 있는 환경 화일들로 구성된다. $ORACLE_HOME/j2ee/home/config 디렉토리에 위치한다.
  • 애플리케이션 환경 설정 파일들 : OC4J 위에서 수행되는 표준적인 J2EE 기반의 애플리케이션들의 수행을 조절하기 위한 다양한 속성값들을 가지고 있는 환경 파일들이다. $ORACLE_HOME/j2ee/home/applications/<app-name> 디렉토리에 위치한다. 또한, OC4J에 특별한 애플리케이션 환경 파일들도 있는데 이들은 $ORACLE_HOME/j2ee/home/application-deployments/<app-name> 디렉토리에 위치한다.
2.1 Mod_oc4j 설정 파일
$ORACLE_HOME/Apache/Apache/conf 디렉토리 밑에 있는 httpd.conf 파일이 바로 OHS의 환경 설정 정보들을 가지고 있는 설정 파일이다. 이 설정 파일 안에 다음과 같은 한 줄이 들어가 있다 :
include “/ias20/Apache/Apache/conf/mod_oc4j.conf”
이 include 절이 바로 mod_oc4j의 환경 정보들을 포함하는 설정 파일을 httpd.conf 파일 안에 포함시키는 문장이다. 이 문장에 표시된 파일인 mod_oc4j.conf 파일이 바로 mod_oc4j 설정 파일이다. Mod_oc4j.conf 파일 안에는 OHS와 OC4J 사이의 연결 관계를 설정하는 문장들이 포함되어 있다. Mod_oc4j.conf의 예제는 다음과 같다
LoadModule oc4j_module modules/ApacheModuleOc4j.dll<IfModule mod_oc4j.c>
     
<Location /oc4j-service>
                SetHandler oc4j-service-handler
                ...
     
</Location>
                     ...
    Oc4jMount /j2ee/*
    Oc4jMount /webapp/* OC4J_Demos
    Oc4jMount /myapp/* ajp13://my-pc:8888

              Oc4jMountCopy On
       Oc4jCacheSize 1
       ... 
</IfModule>
2.2 OC4J Server 설정 파일
$ORACLE_HOME/j2ee/home/config 디렉토리 밑에는 다음과 같은 서버 설정 파일들이 존재한다 :
  • server.xml
  • default-web-site.xml
  • rmi.xml
  • jms.xml
  • principals.xml
  • data-sources.xml
server.xml : OC4J 서버의 실행을 주관
OC4J는 서버의 실행을 위한 설정값들을 확인하기 위해 server.xml을 참조한다. server.xml에는 <1..N> 개의 애플리케이션이 등록되어 있다. 또한, 각각의 애플리케이션은 <0..N> 개의 웹 모듈과 <0..N> 개의 EJB 모듈로 구성되어 있다.
애플리케이션을 등록할 때는 ①애플리케이션의 이름과 ②애플리케이션 설정 파일의 위치, ③그 외의 속성값들을 준다. 애플리케이션의 설정은 밑의 J2EE 애플리케이션 설정 파일들을 참조하면 된다.
server.xml에는 <0..N> 개의 웹 사이트가 등록되어 있다. 웹 사이트가 하나도 등록 되지 않았다는 것은 OC4J 서버를 순수히 EJB 컨테이너로 사용하겠다는 뜻이다. 각 웹 사이트에는 <1..N> 개의 웹 모듈이 등록되어 있다. 웹 모듈을 등록할 때는 ①(server.xml에 등록 된)애플리케이션의 이름과 ②(애플리케이션에 등록 된)웹 모듈의 이름, ③URL Context, ④그 외의 속성값들을 주어야 한다.
또한, server.xml에는 rmi.xml과 jms.xml 파일의 위치를 나타내는 디렉토리 정보가 등록되어 있다.
Server.xml의 예제는 다음과 같다 :
<application-server
     localhostIsAdmin="true"              application-directory="../applications"              deployment-directory="../application-deployments”     connector-directory="../connectors">    <rmi-config path="./rmi.xml" />     <jms-config path="./jms.xml" />      <log><file path="../log/server.log" /></log>      <global-application name="default" path="application.xml" />     <global-web-app-config      path="global-web-application.xml" />      <web-site path="./default-web-site.xml" />     <application name="app01"     path="../applications/app01.ear" />                         ...
</application-server> 
광역 애플리케이션과 일반 애플리케이션
server.xml에 등록되는 애플리케이션은 서로 hierarchical 관계에 있다. OC4J의 최상위 애플리케이션은 광역 애플리케이션(Global application)이라 하여 <global-application ... > 태그를 써서 등록한다. 그 아래의 일반 애플리케이션은 <application ... >태그를 써서 등록한다.
    <global-application name="default" path="application.xml" />
    <application name="foo" path="foo-application.xml" />
    <application name="bar" path="../applications/bar" />
모든 일반 애플리케이션들의 기본적인 부모는 광역 애플리케이션이다. 부모 애플리케이션을 지정하려면 parent attribute를 사용한다.
<application name="bar" parent="foo" path="../applications/bar" />

하위 애플리케이션은 상위 애플리케이션의 각종 자원[resource]을 상속받는다.(Data Source 및 EJB 클래스) 따라서, 하위 애플리케이션의 웹 모듈(.jsp)에서 상위 애플리케이션의 EJB 모듈을 사용 할 수 있다.
기본 웹 모듈과 일반 웹 모듈
광역 애플리케이션과 일반 애플리케이션이 계층적(hierarchical)인 관계라면, 기본 웹 모듈(default web module)과 일반 웹 모듈(web module)의 관계는 평행 관계이다. 다만 기본 웹 모듈의 브라우저 주소는 '/~' 이고 일반 웹 모듈의 브라우저 주소는 '/appserver/~'와 같이 URL context를 가진다는 차이가 있다. 이러한 웹 모듈들은 server.xml 상에 다음과 같이 등록한다.
<default-web-app appslication="default" name="defaultWebApp" />
<web-app application="misc" name="m-web" root="/misc" />
<web-site port="3000" protocol="ajp13"
display-name="Default Oracle9iAS Containers \
for J2EE Web Site">

<default-web-app application="default"
name="defaultWebApp" root="/j2ee"/>

<web-app application="default" name="dms"
root="/dmsoc4j"/>
<web-app application="app01" name="app01"
root="/app01"/>
<web-app application="BC4J" name="webapp"
root="/webapp"/>
<access-log
path="../log/default-web-access.log"/>

</web-site>
DataSource 설정
OC4J 상에서 수행되는 애플리케이션들이 데이타베이스와 연결되어 정보를 저장하거나 검색하기 위해서는 해당 데이타베이스가 data-sources.xml 파일에 등록되어 있어야 한다. Data-sources.xml 파일의 예는 다음과 같다 :
<data-sources> 
            
<data-source class="com.evermind.sql.DriverManagerDataSource"                                         name="OracleDefaultDS" 
                                       location="
jdbc/OracleDefaultDS"
<!--JNDI로 데이타베이스 커넥션을 얻을 때 사용하는 이름 -->
                                       xa-location="jdbc/xa/OracleDefaultDS"
<!--JNDI로 데이타베이스 커넥션을 얻을 때 사용하는 이름, 이때 커넥션은 XA를 지원 -->
                                       ejb-location="jdbc/ejb/OracleDefaultDS"
<!--JNDI로 데이타베이스 커넥션을 얻을 때 사용하는 이름, 이때 커넥션은 XA를 지원하면서 커넥션 풀에서 가져오는 커넥션 -->
                                      pooled-location="jdbc/pooled/OracleDefaultDS"
<!--JNDI로 데이타베이스 커넥션을 얻을 때 사용하는 이름, 이때 커넥션은 커넥션 풀에서 가져오는 커넥션 -->

                                        connection-driver="oracle.jdbc.driver.OracleDriver"
                                        username="scott"
                                        password="tiger"
                                        url="jdbc:oracle:thin:@svr1.customer1.co.kr:1521:ORA817"
                                        inactivity-timeout="30"

                        />
</data-sources>
위의 예에서는 svr1.customer1.co.kr에 설치된 Oracle8.1.7 데이타베이스를 1521 포트를 통해 JDBC Thin 드라이버 방식으로 하여 scott/tiger 사용자 ID와 패스워드를 사용하여 접속함을 의미한다.
2.3 애플리케이션 설정 파일들
$ORACLE_HOME/j2ee/home/application-deployments 디렉토리가 바로 J2EE 기반의 표준 웹 애플리케이션이 설치되는 루트 디렉토리이다. 표준적인 J2EE 애플리케이션들의 환경 설정값을 포함하는 설정 파일들은 다음과 같다 :
  • application.xml : 전체 J2EE 애플리케이션의 환경 설정 파일
  • web.xml : 웹 모듈 환경 설정 파일
  • ejb_jar.xml : EJB 모듈 환경 설정 파일
    또한, 애플리케이션들을 위한 OC4J 만을 위한 환경 설정 파일들은 다음과 같다 :
  • orion-application.xml
  • orion-web.xml
  • orion-ejb_jar.xml
OC4J 상에서 실행되는 J2EE 애플리케이션들의 내부 설정을 정의하는 설정 파일들의 배치 구조는 다음과 같다 :
[애플리케이션 루트]/META-INF/application.xml
[애플리케이션 루트]/META-INF/orion-application.xml

[애플리케이션 루트]/[웹 모듈]/WEB-INF/web.xml
[애플리케이션 루트]/[웹 모듈]/WEB-INF/orion-web.xml
[애플리케이션 루트]/[웹 모듈]/WEB-INF/classes/[서블릿 클래스들]
[애플리케이션 루트]/[웹 모듈]/WEB-INF/classes/[일반 자바 빈 클래스들]
[애플리케이션 루트]/[웹 모듈]/WEB-INF/lib/[JAR 파일들]

[애플리케이션 루트]/[EJB 모듈]/META-INF/ejb-jar.xml
[애플리케이션 루트]/[EJB 모듈]/[EJB 클래스들]

2016년 5월 25일 수요일

[WebLogic] Node Manager Configuration

Creating boot.properties for the WebLogic Administration Server
  $> mkdir -p $DOMAIN_HOME/$DOMAIN_NAME/servers/AdminServer/security
  $> vi boot.properties
     username=weblogic
     password=password for weblogic user

Starting Node Manager
  $> cd $WL_HOME/server/bin
  $> startNodeManager.sh

  $> cd $ORACLE_COMMON_HOME/common/bin
  $> ./setNMProps.sh
     => StartScriptEnabled=true

  $> cd $MW_HOME/wlserver_10.3/server/bin
  $> stopNodeManager.sh

Updating the Node Manager Credentials
  Start Node Manager and Admin Server
  Lock and Edit > <Domain> > Security > General > Advanced Option
    Set Node Manager Username and Password
  Save
  Activate Changes

  Stop Admin Server

  $> cd $ORACLE_COMMON_HOME/common/bin
  $> ./wlst.sh
  wlst> nmConnect('weblogic','password', 'OAMHOST1', '5556', 'IDMDomain', '/u01/app/oracle/admin/IDMDomain/aserver/IDMDomain')
  > nmStart('AdminServer')

nmConnect('weblogic','weblogic1', 'localhost', '5556', 'ucm_domain', 'd:\Oracle\Middleware\user_projects\domains\ucm_domain')

[WebLogic] Log Switch

http://docs.oracle.com/cd/E21764_01/web.1111/e13739/config_logs.htm
http://docs.oracle.com/cd/E21764_01/web.1111/e13715/nav_edit.htm


Listing 3-5 Log Rotation on Demand

#invoke
WLSTC:\>java weblogic.WLST

#connect WLST to an Administration Server
wls:/offline> connect('weblogic','welcome1', 't3://localhost:7001')

#navigate to the ServerRuntime MBean hierarchy
wls:/ucm_domain/serverConfig> serverRuntime()
wls:/ucm_domain/serverRuntime>ls()

#navigate to the server LogRuntimeMBean
wls:/ucm_domain/serverRuntime> cd('LogRuntime/AdminServer')
wls:/ucm_domain/serverRuntime/LogRuntime/AdminServer> ls()
-r--   Name                                         AdminServer
-r--   Type                                         LogRuntime
-r-x   forceLogRotation                             java.lang.Void :

#force the immediate rotation of the server log file
wls:/ucm_domain/serverRuntime/LogRuntime/AdminServer> cmo.forceLogRotation()

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

wls:/offline> connect('weblogic','welcome1', 't3://localhost:7001')
wls:/ucm_domain/serverConfig> cmo
wls:/ucm_domain/serverConfig> cd('Servers')
wls:/ucm_domain/serverConfig/Servers> ls()
wls:/ucm_domain/serverConfig/Servers> cd('AdminServer')
wls:/ucm_domain/serverConfig/Servers/AdminServer> cd('AdminServer')
wls:/ucm_domain/serverConfig/Servers/AdminServer> cd('Log/AdminServer')

wls:/ucm_domain/serverRuntime> cd('LogRuntime/UCM_server1')

[WebLogic] DBMS Authentication Provider 설정


Domain > Security Realms > myrealms > Providers > Authentication
New

Common
  Name: OracleAuthentication
  Description: Provider that performs DBMS authentication
  Control Flag: SUFFICIENT

Provider Specific
  Plaintext Passwords Enabled: Checked
  Data Source Name: CSDS
  Group Membership Searching: Unlimited
  Max Group Membership Search Level: 0
  SQL Get Users Password: SELECT PASSWORD FROM HKMC_USER_INFO WHERE USER_ID = ?
  SQL User Exists: SELECT USER_ID FROM HKMC_USER_INFO WHERE USER_ID = ?
  SQL List Users: SELECT USER_ID FROM HKMC_USER_INFO WHERE USER_ID LIKE ?
  SQL List Groups: SELECT DEPT_NAME FROM HKMC_DEPT_INFO WHERE DEPT_NAME LIKE ?
  SQL Group Exists: SELECT DEPT_NAME FROM HKMC_DEPT_INFO WHERE DEPT_NAME = ?
  SQL Is Member: SELECT USER_ID FROM HKMC_USER_INFO WHERE DEPT_NAME = ? AND USER_ID = ?
  SQL List Member Groups: SELECT DEPT_NAME FROM HKMC_USER_INFO WHERE USER_ID = ?
  Descriptions Supported: Unchecked
  SQL Get User Description: SELECT U_DESCRIPTION FROM USERS WHERE U_NAME = ?
  SQL Get Group Description: SELECT G_DESCRIPTION FROM GROUPS WHERE G_NAME = ?

---

CREATE TABLE UCM_OCS.HKMC_USER_INFO
(
USER_ID                VARCHAR2 (10) NOT NULL,
USER_NAME              VARCHAR2 (50) NOT NULL,
USER_NAME_ENG          VARCHAR2 (100),
DEPT_CODE              VARCHAR2 (10) NOT NULL,
DEPT_NAME              VARCHAR2 (100),
DUTY_CODE              VARCHAR2 (4),
DUTY_NAME              VARCHAR2 (50),
POS_CODE               VARCHAR2 (4),
POS_NAME               VARCHAR2 (50),
POS_LEVEL_CODE         VARCHAR2 (4),
POS_LEVEL_NAME         VARCHAR2 (50),
JOB_CODE               VARCHAR2 (10),
JOB_NAME               VARCHAR2 (50),
EMAIL                  VARCHAR2 (100),
USER_CLASSI_CODE       VARCHAR2 (4),
USER_CLASSI_NAME       VARCHAR2 (50),
LOCATION_CODE          VARCHAR2 (10),
LOCATION_NAME          VARCHAR2 (20),
ADD_DEPT_INFO          VARCHAR2 (1),
ADD_DEPT_ASSIGN_DATE   DATE,
DUP_DEPT_INFO          VARCHAR2 (1),
DUP_DEPT_ASSIGN_DATE   DATE,
INTEGRATED_YN          VARCHAR2 (10),
GIVE_EXCP_YN           VARCHAR2 (1),
WORK_YN                VARCHAR2 (1),
INDUS_ACCI_YN          VARCHAR2 (1),
JO_CODE                VARCHAR2 (10),
BAN_CODE               VARCHAR2 (10),
GWA_CODE               VARCHAR2 (10),
TEAM_CODE              VARCHAR2 (10),
GROUP_CODE             VARCHAR2 (10),
DIVISION_CODE          VARCHAR2 (10),
HDQ_CODE               VARCHAR2 (10),
CEO_CODE               VARCHAR2 (10),
VICE_PRESIDENT_CODE    VARCHAR2 (10),
UPDATE_DATE            DATE,
USER_CREATE_DATE       DATE,
USER_RETIRE_DATE       DATE,
DEPT_ASSIGN_DATE       DATE,
DEPT_ORDER_DATE        DATE,
DOC_MANAGER            VARCHAR2 (5),
UUSER_GUBUN            VARCHAR2 (2),
UUSER_MOBILE           VARCHAR2 (2),
STATUS                 VARCHAR2 (1),
MOBILE                 VARCHAR2 (50),
PASSWORD               VARCHAR2 (80),
ENGLISH_NAME           VARCHAR2 (50),
USER_CLASS             VARCHAR2 (20),
DEPT_NAME_ENG          VARCHAR2 (50),
DUTY_NAME_ENG          VARCHAR2 (50),
POS_NAME_ENG           VARCHAR2 (50),
LOCATION_NAME_ENG      VARCHAR2 (50),
USER_CLASSI_NAME_ENG   VARCHAR2 (50),
ULOCALE                VARCHAR2 (2),
UPAGESIZE              VARCHAR2 (10),
PROJECT_YN             CHAR (1) DEFAULT 'N',
SWORKDI                VARCHAR2 (1) DEFAULT 'N',
SWORKDATE              DATE DEFAULT NULL,
HKMC_ROLE_CODE         VARCHAR2 (10) DEFAULT '10000',
OUTLOOK_USE_YN         VARCHAR2 (2) DEFAULT 'N',
STG_CTL_GUBUN          VARCHAR2 (2) DEFAULT '1',
VIRTUAL_SPACE_YN       VARCHAR2 (1) DEFAULT 'N'
);

CREATE TABLE UCM_OCS.HKMC_DEPT_INFO
(
DEPT_CODE              VARCHAR2 (10) NOT NULL,
DEPT_NAME              VARCHAR2 (75),
DEPT_CODE_OLD          VARCHAR2 (10),
UPPER_DEPT_CODE        VARCHAR2 (10),
UPPER_DEPT_CODE_OLD    VARCHAR2 (10),
ORG_RANK_ORDER         VARCHAR2 (4),
ORG_PRT_ORDER          VARCHAR2 (4),
MGR_DUTY_CODE          VARCHAR2 (20),
MGR_DUTY_NAME          VARCHAR2 (50),
MANAGER_ID             VARCHAR2 (10),
MANAGER_NAME           VARCHAR2 (50),
LOCATION_CODE          VARCHAR2 (10),
LOCATION_NAME          VARCHAR2 (30),
USER_CLASSI_CODE       VARCHAR2 (4),
USER_CLASSI_NAME       VARCHAR2 (50),
INTEGRATED_YN          VARCHAR2 (1),
STATUS                 VARCHAR2 (1),
DEPT_CREATE_DATE       DATE,
DEPT_RETIRE_DATE       DATE,
DEPT_ORDER_DATE        DATE,
DEPT_CHANGE_REASON     VARCHAR2 (2000),
SUB_DEPT_INFO          VARCHAR2 (1),
DEPT_NAME_ENG          VARCHAR2 (100),
MANAGER_NAME_ENG       VARCHAR2 (50),
USER_CLASSI_NAME_ENG   VARCHAR2 (50),
DEPT_CODE_NEW          VARCHAR2 (10),
UPPER_DEPT_CODE_NEW    VARCHAR2 (10),
ORG_GRADE_CODE         VARCHAR2 (20),
ORG_GRADE_NAME         VARCHAR2 (50)
);

[WebLogic] Changing hostname, IP for Weblogic 11g

http://romilbhagat.blogspot.kr/2010/06/changing-hostnameip-for-weblogic-11g.html


There are two ways to solve it.

1. Disable Flags - Jugaad way ;)
   Put the following flags at the right places.
   Node Manager: -Dweblogic.nodemanager.sslHostNameVerificationEnabled=false
   Admin Server: -Dweblogic.security.SSL.ignoreHostnameVerification=true

2. Recreate the Certificates - The recommended way.
   Node manager by default uses the WebLogic demo identity keystore. The keystore is generated at install time using the CertGen utility. The generated private key uses the common name (cn) resolved by Java.

   2.1 Set the PATH
       $> . $WL_HOME/server/bin/setWLSEnv.sh

   2.2 Backup DemoIdentity.jks under $WL_HOME/server/lib

   2.3 Generate the private key.
       ###$> java utils.CertGen -cn -keyfilepass DemoIdentityPassPhrase -certfile newcert -keyfile newkey
       $> java utils.CertGen -cn -keyfilepass DemoIdentityPassPhrase -certfile newcert -keyfile newkey

   2.4 Import the key generated above to the keystore.
       $> java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile newkey.pem -keyfilepass DemoIdentityPassPhrase -certfile newcert.pem -alias demoidentity

   2.5 Copy DemoIdentity.jks to $WL_HOME/server/lib

   2.6 Restart your nodemanager.