퇴근에 대한 소고

일하다 말고 이것저것 보다가 마음이 가는 글이 있어 써놓는다.


출처 - http://www.okjsp.pe.kr/seq/102387

큰일이다.

퇴근하고 일터에서 내의지가 아닌 타인의 의지로 인해 움직였던 이 몸뚱아리를 이끌고 그위에는 일터에서의 일거리 스트레스밖에 남아있지 않은 머리를 달고 다시 집으로 무반사적으로 움직인다.

어디쯤가면 지하철 표를 집어넣고 어디쯤 내려가서 지하철 몇번째 칸에 몸을 실고...

그렇게 그렇게 집에 간다.

집이다. 그나마 내 의지가 내 몸을 마음대로 다룰수 있는 곳이다.

..라고 생각했다.

그러나 그 생각은 단지 생각 뿐이다.

혼자서 집에서 살림하느라 동네 아줌마들과 노느라 아기 키우느라 바쁜 아내가 내가 오기만을 기다린다.

오자마자 씻고 시원한 에어컨 바람아래 늘어진다.

그리고 아내의 하루 이야기... 재잘재잘...

아... 아내는 나보다 더 바쁘게 하루를 살았구나...

머리속에 더 이상 그 이야기들을 집어넣을 공간이 없다. 머리 아프다. 내 머리의 용량은 이미 한계를 넘었다..

그렇다고 아내한테 머리아프다고 말하기도 그렇다. 안들어주면 아내는 삐진다.

아내는 그나마 가정의 식구이자 든든한 남편이 직장에서 축 늘어져서 오는 것을 보고 안쓰러워할테니 집에서라도 그나마 힘이 있어보여야 하는데.. 그게 쉽지 않다.

하지만 건성으로 들어준다거나 대답하면 아내는 건성으로 한다고 또 삐진다.

결혼하니까 아내한테 관심이 없어졌느니 결혼전에는 그렇게 다정한 남편이 결혼하니까 너무 무덤덤해졌다고 삐지기도 하고...

그리고 아내는 결혼전 데이트할때 다니던 회사의 누가 와이셔츠가 이쁘니 넥타이가 이쁘니 어느 대리가 멋지니 부장은 매너없니 이런 이야기 하곤 했다.

모르는 소리다.

멋진 그 대리조차 직장은 힘든 곳이다.

매너없는 부장도 이제 모가지가 달랑달랑한 시기다.

미혼일때는 남자들의 멋진 모습을 찾았겠지만 그 멋진 모습조차 사회에서 살아남기 위한 위장이다.

누구나 지치고 힘이 든 곳이 직장이지, 직장이 편하고 행복하면 샐러리맨들이 포장마차에서 소주잔을 빨며 내놓은 안주앞에 한숨을 쉬지는 않을 것이다.

집에서 쉬면서 스트레스 풀고 싶다. 집이 내 힘들고 지친 몸과 영혼을 쉬게 해주는 곳이였으면 좋겠다.

아내가 내 몸과 영혼을 어루만져줬으면 좋겠다.

모든 남편이 일탈을 생각하지않고 직장을 마치고 다른 곳으로 가지 않고도 집이라는 포근하고 따스한 곳으로 발길을 돌릴수 있도록...

아내를 사랑하기에 아내에게 싫은 소리 하기 싫어 나 혼자 삭인다고 아내는 또 투정을 부린다.

당신한테 밖에서 들고온 이 무거운 짐을 넘기기 싫어 아무것도 아니라 말하면 자기는 함께 살아가자면서 왜 혼자 낑낑대냐고 또 뭐라 한다.

문득 아버지가 생각난다.

일 마치고 퇴근하신 아버지가 문을 열고 들어오실때 건성으로 대답한 "다녀오셨어요" 라는 말..

아버지 죄송해요..

... 삶이 힘들땐... 아버지를 생각하자.

사회에 나와 결혼을 하고 가정을 꾸리고 아기를 키우면서..

이 세상에서 나의 아버지는 정말 대단한 분이시다.



okjsp.pe.kr 은 나같이 SI에 일하는 많은 사람들이 오가는 곳이다.
그래서인가, 동감가는 얘기들이 많다.
오늘은 퇴근하면 무슨 일이 일어날까..

카라잔 황천의 원령 공략법

카라잔 황천의 원령 공략법 괜찮은 게 있어서 링크.
후후..

고민+고민 = "하늘은 푸르다."

고민에 일 할 의욕이 바닦까지 내려가서 하늘보고 한숨쉬고 있었다.
덥디더운 무더운 날씨에 땀이 배여 나온다.
하늘은 여전히 파랗고..
날씨가 정말 환하다.
그러고보면 아직 할만한 세상이 맞는 듯 하다.

저절로 기운이 돈다. 감사함이 기운을 북돋는다.
꼭 해야할 것

공부 계획 세우기
공부할 웹페이지 만들기 -> 커뮤니티 만들기

직장에 대한 고민

SI 만 2년이 되어간다.
제대로된 패키지를 만들겠다고 한 의욕이 꺾여가고 있다.
소프트웨어 기술에 대해 이해가 부족한 사업부장이나 인력파견에서 벗어나지 못하는 사업구조가 바뀌질 않고 어려워지는 사업을 타개할 방법을 제대로 찾지 못하고 있다.
말아먹고 있는 대한민국 IT 업계의 현실(IT 업계 빅3의 빛과 그림자)에서 벗어나지 못하는 한 능력이 부족한 작은 이 회사에서 과연 미래가 있을까 하는 의문이 게속 솟구친다.

더 나은 기술이 있어도 사용되지 못하고, 더 나은 능력이 있어도 사용되지 못하는 것 만큼 답답한 것도 없을 것이다.
다음 프로젝트는 안성에 있는 농협에 쇼핑몰에 몇가지 더 첨가하는 일을 하게 될 것 같다. 4개월.
건설업계같이 사람 머리수 만을 돈으로 계산하고, 더욱 싼 인력만 찾는 이곳에 정이 들 수가 없다.
대기업은 기술발전이란는 건 안중에도 없고, 대기업 아니어도 기술선도라는 걸 기대할 수도 없다.
내 손끝에서 나오는 것을 인정받지 못하고 서류상에 적혀있는 머리수의 단가만을 인정받을 수 있다는 게 정말 질린다.

내 아내를 보며 참고, 시간이 흘러 더욱 많은 무기과 능력을 갖추기까지 참고 또 참는 것을 잘 할 수 있으런지 모르겠다.
지금 업무에 활용되지 않을 좋은 기술들을 갈고 닦는 게 쉬운 일이 아니라는 걸. 또 아무리 싫다고 해도 맞겨진 일을 술렁술렁 넘겨버리는 것도 성격상 하지 못하고, 쓰린 맘을 추스리는데 보내는 시간이 아깝다.

방책을 구해야겠다. 여러가지로, 여러면으로.
고민하고 실천하기를 시간 앞에서 당당하게.

iBatis in Action



요전에 주문한 책이 어제 도착했다.
짐 옆에 끼고 있긴한데 볼 시간이 있으려나..

P.S 물론 한글판. 이미지만 영문으로.. ~_~

Oracle - Create sequance

-----------------------------------------------
-- Export file for user SAMPLEUSER --
-----------------------------------------------

spool s070614.log

prompt
prompt Creating sequence IEBKNIFE_SEQ
prompt ==============================
prompt
create sequence SAMPLEUSER.IEBKNIFE_SEQ
minvalue 1
maxvalue 9999999
start with 2541
increment by 1
cache 20
cycle;

prompt
prompt Creating sequence IEBPS_SEQ
prompt ===========================
prompt
create sequence SAMPLEUSER.IEBPS_SEQ
minvalue 1
maxvalue 9999999
start with 240753
increment by 1
cache 20
cycle;

prompt
prompt Creating sequence SAMPLEUSER_SEQ
prompt ===========================
prompt
create sequence SAMPLEUSER.SAMPLEUSER_SEQ
minvalue 1
maxvalue 9999
start with 2021
increment by 1
cache 20
cycle;

prompt
prompt Creating sequence SAMPLEUSER_UNITPACK
prompt ================================
prompt
create sequence SAMPLEUSER.SAMPLEUSER_UNITPACK
minvalue 1
maxvalue 1295
start with 61
increment by 1
cache 20
cycle;

prompt
prompt Creating sequence SCHEDULE_SEQ
prompt ==============================
prompt
create sequence SAMPLEUSER.SCHEDULE_SEQ
minvalue 1
maxvalue 9999999
start with 1
increment by 1
nocache;

prompt
prompt Creating sequence TBL_SEQ
prompt =========================
prompt
create sequence SAMPLEUSER.TBL_SEQ
minvalue 1
maxvalue 999999999999999999
start with 239472
increment by 1
cache 20
cycle;

prompt
prompt Creating sequence TOL_SEQ
prompt =========================
prompt
create sequence SAMPLEUSER.TOL_SEQ
minvalue 1
maxvalue 9999999
start with 2874463
increment by 1
cache 20
cycle;


spool off

Oracle - Create table and index

spool DB_Table.log

create table SAMPLEUSER.MY_DUAL
(
X NUMBER not null,
primary key (X)
)
organization index;

create table SAMPLEUSER.TB_IEM902
(
PLANT_CD VARCHAR2(4) not null,
MANA_NO VARCHAR2(18) not null,
MANA_NM VARCHAR2(50),
USE_YN VARCHAR2(1) default 'N',
MANA_NM_ENG VARCHAR2(50),
INSERT_DATE DATE default SYSDATE,
INSERT_USER VARCHAR2(20),
UPDATE_DATE DATE default SYSDATE,
UPDATE_USER VARCHAR2(20),
DEL_FLAG VARCHAR2(1) default 'A' not null,
LEVEL_CD VARCHAR2(30),
UPDATE_DATE1 VARCHAR2(14),
TYPE VARCHAR2(4)
)
tablespace SAMPLEUSER_TABLE
pctfree 20
initrans 1
maxtrans 255
storage
(
initial 1M
minextents 1
maxextents unlimited
);
comment on table SAMPLEUSER.TB_IEM902
is '관리코드정보';
alter table SAMPLEUSER.TB_IEM902
add constraint TB_IEM902_PK primary key (PLANT_CD, MANA_NO)
using index
tablespace SAMPLEUSER_TABLE
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
create index SAMPLEUSER.TB_IEM902_X1 on SAMPLEUSER.TB_IEM902 (PLANT_CD)
tablespace SAMPLEUSER_INDEX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 4M
next 16K
minextents 1
maxextents unlimited
pctincrease 0
);
create index SAMPLEUSER.TB_IEM902_X2 on SAMPLEUSER.TB_IEM902 (PLANT_CD, LEVEL_CD)
tablespace SAMPLEUSER_TABLE
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
grant select, insert, update, delete, references, index on SAMPLEUSER.TB_IEM902 to IEOPT;
grant select, insert, update, delete, references, index on SAMPLEUSER.TB_IEM902 to SAMPLEUSEROC;


spool off

Oracle - create table space user 테이블스페이스 유저 생성

CREATE TABLESPACE "SAMPLE_TABLE" LOGGING DATAFILE
'/oradata/iepcs/SAMPLE_TABLE1.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TABLE2.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TABLE3.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TABLE4.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TABLE5.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;


CREATE TABLESPACE "SAMPLE_INDEX" LOGGING DATAFILE
'/oraindex/iepcs/SAMPLE_INDEX01.dbf' SIZE 100M REUSE,
'/oraindex/iepcs/SAMPLE_INDEX02.dbf' SIZE 100M REUSE,
'/oraindex/iepcs/SAMPLE_INDEX03.dbf' SIZE 100M REUSE,
'/oraindex/iepcs/SAMPLE_INDEX04.dbf' SIZE 100M REUSE,
'/oraindex/iepcs/SAMPLE_INDEX05.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

CREATE TEMPORARY TABLESPACE "SAMPLE_TEMP" TEMPFILE
'/oradata/iepcs/SAMPLE_TEMP01.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TEMP02.dbf' SIZE 100M REUSE,
'/oradata/iepcs/SAMPLE_TEMP03.dbf' SIZE 100M REUSE EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 1024K;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE "SAMPLE_TEMP";


CREATE USER "SAMPLEUSER" PROFILE "DEFAULT"
IDENTIFIED BY "SAMPLEUSER" DEFAULT TABLESPACE "SAMPLE_TABLE"
TEMPORARY TABLESPACE "SAMPLE_TEMP"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "SAMPLEUSER";


GRANT "CONNECT" TO "SAMPLEUSER";
GRANT "RESOURCE" TO "SAMPLEUSER";


사실 위에 내용은 Oracle Enterprise Manager Console에서 GUI로 작업할 수도 있다. -_-

Oracle - Index rebuild

SELECT
'ALTER INDEX '|| INDEX_NAME ||' REBUILD UNRECOVERABLE;'

FROM USER_INDEXES
WHERE INDEX_NAME NOT LIKE '%[SOME_TABLE_NAME]%'

Oracle - 파티션 추가 쿼리

ALTER TABLE TB_IEM124 ADD PARTITION TB_IEM124_P1_L_200712
VALUES ('0L0712') TABLESPACE IEPCS_TABLE
PCTFREE 20 INITRANS 1 MAXTRANS 255
STORAGE
(
INITIAL 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
)
;

ALTER TABLE TB_IEM124 ADD PARTITION TB_IEM124_P1_C_200712
VALUES ('0C0712') TABLESPACE IEPCS_TABLE
PCTFREE 20 INITRANS 1 MAXTRANS 255
STORAGE
(
INITIAL 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
)
;

Oracle - 과도한 디스크 사용 검색

select A.disk_reads, A.sql_text,
B.sid, B.serial#
from v$sqlarea A,
v$session B
where A.disk_reads > 10000
and A.ADDRESS = B.SQL_ADDRESS(+)
AND A.HASH_VALUE = B. SQL_HASH_VALUE(+)
order by A.disk_reads desc;

Oracle - 과도한 메모리 사용 검색

Select
D.sid "SID" ,
--s.serial# "Serial#",
D.username "Oracle User",
D.program "Program",

D.module "Module",
D.status "Status",
D.type "Type",
D.server "Connection",
to_char(D.logon_time,'YYYY-MM-DD HH24:MI:SS') "Logon Time",
D.osuser "OS User" ,
decode(D.lockwait,null,'','Blocking') "Lock",
decode(D.taddr,null,'','TX') "Transaction",
SYSDATE - (D.last_call_et/86400) "Last Call",
A.User_Name,
D.machine "Machine",
B.Disk_Reads,
B.Buffer_Gets,
B.Rows_Processed,
C.SQL_Text,
A.Address
From V$Open_Cursor A,
V$SQLArea B,
V$SQLText C,
sys.v_$session D
Where A.User_Name = Upper('IEPCS')
AND B.ADDRESS = D.SQL_ADDRESS
AND B.HASH_VALUE = D.SQL_HASH_VALUE
And A.Address = C.Address

How to install Application Server (Tomcat 4, Apache 2, JK2 1.2) on Redhat linux 9

[준비]
1. Apache
file(source) : httpd-2.0.50.tar.tar
url : http://archive.apache.org/dist/httpd/httpd-2.0.50.tar.gz
다른 버전은 http://archive.apache.org/dist/httpd/ 에서 찾을 수 있다.
2. J2SDK
file(binary) : j2sdk-1_4_2_14-linux-i586.bin
url : http://java.sun.com/j2se/1.4.2/download.html
3. Tomcat connecter (mod_jk)
file(source) : tomcat-connectors-1.2.22-src.tar.gz
url : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.22/tomcat-connectors-1.2.22-src.tar.gz
다른 버전은 http://archive.apache.org/dist/tomcat/tomcat-connectors/ 에서 찾을 수 있다.
4. Tomcat
file(binary) : jakarta-tomcat-4.1.31.tar.tar
url : http://archive.apache.org/dist/jakarta/tomcat-4/v4.1.31/bin/jakarta-tomcat-4.1.31.tar.gz
다른 버전은 http://archive.apache.org/dist/jakarta/ 에서 찾을 수 있다.
5. 준비된 파일을 /work에 복사한다.
6. root로 로그인한다.

[installation]
1. Apache
[prompt]# cd /work
[prompt]# tar xvf httpd-2.0.50.tar.tar
[prompt]# cd httpd-2.0.50
[prompt]# ./configure --enable-rule=SHARED_CORE --enable-modules=so --enable-module=rewrite --prefix=/usr/local/apache-2.0.50
[prompt]# make
[prompt]# make install
[prompt]# rm -rf /etc/apache
[prompt]# rm -rf /etc/httpd
[prompt]# ln -s /usr/local/apache-2.0.50/conf /etc/apache
[prompt]# ln -s /usr/local/apache-2.0.50 /usr/local/httpd
[prompt]# chmod -R 755 /usr/local/apache-2.0.50
[prompt]# chmod 755 /usr/local/httpd
[prompt]# export APACHE_HOME=/usr/local/apache-2.0.50

2. J2SDK
[prompt]# cd /work
[prompt]# ./j2sdk-1_4_2_14-linux-i586.bin
[prompt]# ln -s /usr/local/j2sdk1.4.2_14 /usr/local/java
[prompt]# export CLASSPATH=.:/usr/local/java/lib:usr/local/java/jre/lib:/oracle/product/9.2.0/jdbc/lib/classes12.jar:/oracle/product/9.2.0/jdbc/lib/
[prompt]# export JAVA_HOME=/usr/local/java
[prompt]# PATH=$PATH:$JAVA_HOME/bin
** PATH로 걸려있는 경로 중 java 의 다른 실행파일이 있다면 다른 이름으로 변경한다.
** CLASSPATH의 JDBC 경로 또한 맞는 위치로 바꾼다.

3. Tomcat
[prompt]# tar xvf jakarta-tomcat-4.1.31.tar.tar
[prompt]# mv jakarta-tomcat-4.1.31 /usr/local
[prompt]# ln -s /usr/local/jakarta-tomcat-4.1.31 /usr/local/tomcat4
[prompt]# export TOMCAT_HOME=/usr/local/tomcat4
[prompt]# export BASEDIR=/usr/local/tomcat4
[prompt]# export CATALINA_BASE=/usr/local/tomcat4/
[prompt]# export CATALINA_HOME=/usr/local/tomcat4/
[prompt]# export CATALINA_TMPDIR=/usr/local/tomcat4/temp
** export한 내용은 /etc/profile 에 추가한다
[prompt]# groupadd tomcat
[prompt]# useradd tomcat
[prompt]# passwd
[prompt]# chown -R tomcat:tomcat /usr/local/jakarta-tomcat-4.1.31
[prompt]# chmod -R 755 /usr/local/jakarta-tomcat-4.1.31

4. mod_jk
[prompt]# tar xvfz tomcat-connectors-1.2.22-src.tar.gz
[prompt]# cd tomcat-connectors-1.2.22-src
[prompt]# ./buildconf.sh
[prompt]# ./configure --with-apxs=/usr/local/apache-2.0.50/bin/apxs --with-tomcat4=/usr/local/tomcat4
[prompt]# cd apache-2.0
[prompt]# make -f Makefile.apxs
[prompt]# make install

[Configuration]
1.workers.properties
file : workers.properties
path : /usr/local/httpd/conf
context :
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=/
worker.list=worker1
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

2. httpd.conf
file : httpd.conf
path : /usr/local/httpd/conf
context :
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/httpd/conf/workers.properties
JkLogFile /usr/local/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /jsp-examples worker1
JkMount /jsp-examples/* worker1
JkMount /*.jsp worker1
JkMount /* worker1
JkMount /examples worker1
JkMount /examples/* worker1

DocumentRoot /usr/local/tomcat/webapps/ROOT

ServerName,

3. server.xml
file : server.xml
path : /usr/local/tomcat4/conf
context :


debug="0"/>
debug="0"/>





type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">



factory
org.apache.catalina.users.MemoryUserDatabaseFactory


pathname
conf/tomcat-users.xml





port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>


prefix="catalina_log." suffix=".txt"
timestamp="true"/>
debug="0" resourceName="UserDatabase"/>



reloadable="true" crossContext="true">
prefix="localhost_log." suffix=".txt"
timestamp="true"/>






4. Program copy
[prompt]# cp /work/ROOT /usr/local/tomcat4/webapps/ROOT

3. server.xml
file : web.xml
path : /work/ROOT /usr/local/tomcat4/webapps/ROOT/WEB-INF
context :

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

Welcome to Tomcat

Welcome to Tomcat


invoker
/servlet/*


Oracle Datasource
jdbc/classDS
javax.sql.DataSource
Container




[Startup]
1. Apache
[prompt]# /usr/local/httpd/bin/apachectl start
2. Tomcat
[prompt]# su - tomcat
[prompt]# /usr/locat/tomcat4/bin/catalina.sh start


[FAQ]
1. 시작페이지를 요청하면 페이지를 찾을 수 없다.
- configuration 파일들을 확인한다.
httpd.conf 의 DocumentRoot, ServerRoot, ServerName 을 확인한다.
server.xml에서 의 appBase 는 $CATALINA_HOME을 루트로 한다.
의 child element인 에서 docBase는 의 appBase를 루트로 한다.
- httpd 설정파일이 /etc/apache 또는 /etc/httpd 에 따로 저장되었을 수도 있다.
해당 설정을 모두 지우고 설치한 apache의 conf 경로를 심볼릭링크로 지정해둔다.

2. .html은 잘 보이나, servlet을 요청하면 페이지를 찾을 수 없다.
- 환경변수가 올바르게 되어 있는지 확인한다. 특히 톰켓은 tomcat계정으로 실행하므로 tomcat 계정에서도 올바른 환경변수가 지정되어 있는지 확인한다.
[prompt]# echo $JAVA_HOME
[prompt]# echo $TOMCAT_HOME
[prompt]# echo $CATALINA_HOME
[prompt]# echo $CLASSPATH
- configuration 파일들을 확인한다.
server.xml에서 의 appBase 는 $CATALINA_HOME을 루트로 한다.
의 child element인 에서 docBase는 의 appBase를 루트로 한다.
WEB-INF 내의 web.xml 의 내용을 확인한다.
*tomcat5에서는 servlet mapping을 invoker와 같이 일괄지정할 수 없다.(보안위배된다하여 변경되었다.)
*http 요청 실패(error:401, error:404)는 apache 요청실패와 tomcat 요청실패가 다르다.
요청실패 메세지로 확인할 수 있다.

3. DB Connecter 관련 java exception이 발생한다.
- 만약 NoClass Exception이라면 JDBC를 로드할 수 없는 것이다.
JDBC의 classes12.jar이 CLASSPATH에 맞게 지정되어있는지 확인한다.
- DB 연결정보가 맞지 않을 수 있다. iecom_rdb.java의 소스를 확인하여 DB 연결정보(ip, SID, port 등)를 확인한다.

How to install OC4J 9 on Redhat linux 9

How to Install OC4J 10g (9.0.4)

준비물 :
OC4J Oracle homepage에서 다운로드한다.
JDK(v1.4 이상) 설치되어 있어야 한다.

1. Download OC4J

2. Copy package
# su - root
# cp /work/oc4j_extended_904 /usr/local
# ln -s /usr/local/oc4j_extended_904 oc4j
# chmod 755 -R /work/oc4j_extended_904

3. Setting Environment
JAVA_HOME=/usr/local/java
ORACLE_HOME=/usr/local/oc4j (OC4J의 HOME이다. Oracle의 home이 아니다)
J2EE_HOME=$ORACLE_HOME/j2ee/home

4. Deploy POP source
# cd /usr/local/oc4j/j2ee/home
# cp -r /work/ROOT ./ (TOMCAT 등에서 사용된 ROOT 모두를 복사한다.)
# mv ROOT iepcs (복사한 소스를 iepcs로 명명한다.)
# chmod -R 777 iepcs

5. Configuration
# cd /usr/local/oc4j/j2ee/home/config
# vi application.xml


위의 내용중
부분인 default deployee이며 이를
와 같이 수정한다.

# vi http-web-site.xml

위의 port를 80으로 바꾼다.


# vi server.xml

위 내용 중 check-for-update property가 있다면 true로 고치고, 없으면 추가한다.

check-for-update가 true일 때 web application의 변화가 있으면 즉시 반영된다. 그러나 성능은 저하된다.

6. Review Directories

/bin
/j2ee
+ /home (WEB Application HOME)
+ /config (설정파일)
+ /iepcs (POP Source)
/javacache
/javavm
/jdbc
/jdk
/jlib
/lib
/rdbms
/soap
/sqlj
/toplink
/webservices

7. Startup
# cd /usr/local/oc4j/j2ee/home/
# java -jar oc4j.jar

How to install Oracle 9.2.0.4 on AIX

Creating Oracle User Accounts

1 smitty user -> oracle계정 생성
smitty fs -> oracle home directory
smitty group ->dba그룹 생성


Creating Oracle Directorieser

2. su - root
mkdir -p /u01/app/oracle/product/9.2.0
(mkdir -p /oracle/product/9.2.0)
chown -R oracle.oinstall /u01
(chown -R oracle.oinstall /oracle)
(chown -R oracle.oinstall /ora-data)

mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle


Setting Oracle Environments

3.
# vi /home/oracle/.profile
export ORACLE_HOME=/home/oracle
export ORACLE_TERM=vt100
export ORACLE_BASE=/home/oracle
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export PATH=$PATH:$ORACLE_HOME/bin/oracle
export PATH=$PATH:/bin:/usr/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_SID=ANAMDB
export DISPLAY=127.0.0.1:0.0
umask 022
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib


Uncompress and unpack downloaded files: For Oracle9i (9.2.0):

4. # cd /home/oracle
# zcat ship_9204_linux_disk1.cpio.gz | cpio -idmv
# zcat ship_9204_linux_disk2.cpio.gz | cpio -idmv
# zcat ship_9204_linux_disk3.cpio.gz | cpio -idmv


Run preinstall script

5. # cd /home/oracle/Disk1
# ./rootpre.sh


Run Installer
1. # su - oracle
$ cd /DISK1
$ runInstaller : ./runInstaller

13. sys/sysadmin
14. system/sysadmin

15. #sqlplus /nolog
sql>connect sys/sysadmin as sysdba
sql>quit
#lsnrctl
lsnrctl>start
lsnrctl>quit

How to install Oracle 9.2.0.4 on Redhat linux 9

Setting Shared Memory

(root 계정으로 진행)
1. # cat /proc/sys/kernel/shmmax
2147483648
# echo 2147483648 > /proc/sys/kernel/shmmax
# sysctl -w kernel.shmmax=2147483648
# echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf
2. # cat /proc/sys/kernel/shmmni
4096
# echo 4096 > /proc/sys/kernel/shmmni
# sysctl -w kernel.shmmni=4096
# echo "kernel.shmmni=4096" >> /etc/sysctl.conf
3 $ getconf PAGE_SIZE
4096
# cat /proc/sys/kernel/shmall
2097152
# echo 2097152 > /proc/sys/kernel/shmall
# sysctl -w kernel.shmall=2097152
# echo "kernel.shmall=2097152" >> /etc/sysctl.conf

Creating Oracle User Accounts

4. su - root
groupadd dba # group of users to be granted with SYSDBA system privilege
groupadd oinstall # group owner of Oracle files
useradd -c "Oracle software owner" -g oinstall -G dba oracle
passwd oracle

Creating Oracle Directorieser

5. su - root
mkdir -p /u01/app/oracle/product/9.2.0
(mkdir -p /oracle/product/9.2.0)
chown -R oracle.oinstall /u01
(chown -R oracle.oinstall /oracle)
(chown -R oracle.oinstall /ora-data)

mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle

Setting Oracle Environments

6.
(oracle 계정으로 진행 # su - oracle)
# Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9,
# RHEL AS 3, and RHEL AS 4 !!
# Use the "Linuxthreads with floating stacks" implementation instead of NPTL:
export LD_ASSUME_KERNEL=2.4.1 # for RH 9 and RHEL AS 3
export LD_ASSUME_KERNEL=2.4.19 # for RHEL AS 4

# Oracle Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm
# export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export DISPLAY=127.0.0.1:0.0

# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin

JDK
According to the JDK documentation, install JDK under /usr/local. Then create a symbolic link to the JDK under /usr/local/java:
7. su - root
bzip2 -dc jdk118_v3-glibc-2.1.3.tar.bz2 | tar xf - -C /usr/local
ln -s /usr/local/jdk118_v3 /usr/local/java

8. radhat 9에 /usr/bin/gcc296을 gcc로 링크한다.
# su - root
# mv /usr/bin/gcc /usr/bin/gcc323
# ln -s /usr/bin/gcc296 /usr/bin/gcc
# mv /usr/bin/g++ /usr/bin/g++323 # if g++ doesn't exist, then gcc-c++ was not installed
# ln -s /usr/bin/g++296 /usr/bin/g++

Uncompress and unpack downloaded files: For Oracle9i (9.2.0):

8. # cd /work
# zcat ship_9204_linux_disk1.cpio.gz | cpio -idmv
9. # zcat ship_9204_linux_disk2.cpio.gz | cpio -idmv
10. # zcat ship_9204_linux_disk3.cpio.gz | cpio -idmv


11. # startx <- x윈도우 실행하고
# cd /oracle/Disk1
# ./runoraInstaller
11.1 오라클 인스톨러 실행중 한글이 깨져서 보일때
11.1.1 Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib/fonts
위의 경로에 batang.ttc gulim.ttc mingliu.ttc (windows font) 세 파일을 복사해넣는다.
11.1.2 Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib/fonts/fonts.dir
의 내용을 edit하여 다음 3라인을 추가한다.
batang.ttc -ms-batang-medium-r-normal--0-0-0-0-c-0-ksc5601.1987-0
gulim.ttc -ms-gulim-medium-r-normal--0-0-0-0-c-0-ksc5601.1987-0
mingliu.ttc -ms-mingliu-medium-r-normal--0-0-0-0-c-0-ksc5601.1987-0
11.1.3 Disk1/stage/Components/oracle.swd.jre/1.3.1.0.0/1/DataFiles/Expanded/jre/linux/lib
위의 경로에 font.properties.ko 파일을 추가한다

12. 오라클 인스톨러 실행중에
'/tmp/orainstRoot.sh'를 root 계정으로 실행하고 continue하란다.. 시키는데로 하자
12.1 인스톨 중, 끝부분에서 Linking 을 할때(84%) 쯤에, Error in invoking target install of makefile /Oracle/product/9.2.0/ctx/lib/ins_ctx.mk 에러메세지가 발생한다면
12.1.1 $vi $ORACLE_HOME/ctx/lib/env_ctx.mk 를 에디트
"INSO_LINK =" 이 부분에 "$(LDLIBFLAG)dl" 추가
예)
INSO_LINK =
-L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa
$(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi
$(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)

13. sys/sysadmin
14. system/sysadmin

15. #sqlplus /nolog
sql>connect sys/sysadmin as sysdba
sql>quit
#lsnrctl
lsnrctl>start
lsnrctl>quit

Auto backup - Oracle cold backup on linux

[auto_db_backup.sh]-------------------------------------------------------------
#! /bin/bash
WEEKAGO=`date -d "-7 days" +%Y%m%d`
NOW=`date +%Y%m%d`
/oracle/product/9.2.0/bin/sqlplus /nolog <connect / as sysdba
shutdown
exit
EOF
tar -cvf /work/db_backup/oradata_$NOW.tar /oradata
tar -cvf /work/app_backup/iepcs_tw_$NOW.tar /usr/local/tomcat4/webapps/ROOT
rm -f /work/db_backup/*_$WEEKAGO.tar
rm -f /work/app_backup/*_$WEEKAGO.tar
/oracle/product/9.2.0/bin/sqlplus /nolog <connect / as sysdba
startup
exit
EOF
--------------------------------------------------------------------------------

[auto_ftp_send_data.sh]-------------------------------------------------------------
#! /bin/bash
NOW=`date +%Y%m%d`
ftp -vn <open 165.244.124.134
user pop "popadmin"
prompt
put /work/db_backup/oradata_$NOW.tar /oradata_$NOW.tar
bye
EOF
--------------------------------------------------------------------------------

[auto_ftp_send_apps.sh]-------------------------------------------------------------
#! /bin/bash
NOW=`date +%Y%m%d`
ftp -vn <open 165.244.124.134
user pop "popadmin"
prompt
put /usr/local/httpd/conf/httpd.conf /$NOW_httpd.conf
put /usr/local/httpd/workers.properties /$NOW_workers.properties
put /usr/local/tomcat4/conf/server.xml /$NOW_server.xml
put /usr/local/tomcat4/webapps/ROOT/WEB-INF/web.xml /$NOW_web.xml
put /home/oracle/.bash_profile /$NOW_oracle_bash_profile
put /work/app_backup/iepcs_tw_$NOW.tar /$NOW_iepcs_tw.tar
bye
EOF
--------------------------------------------------------------------------------

[crontab]-----------------------------------------------------------------------
0 23 * * * /home/oracle/auto_db_backup.sh
10 23 * * 0 /home/oracle/auto_ftp_send_data.sh
50 23 * * * /home/oracle/auto_ftp_send_apps.sh
분 시 일 월 요일 명령
--------------------------------------------------------------------------------

어느덧 8월

어젠 고심고심한 끝에 책을 두권 구입했다.


이것들 말고도 Spring 책 한권 더 있는데 포인트 좀 쌓고 사려고 며칠 미뤘다.
통장 잔고와 결재될 카드값을 보면 자꾸 책 사는 것이 꺼려지게 된다.
그럼 꽤 우울해진다.
아내에게도 이 우울함을 전달해 주기는 싫고...
알고 싶은 것이 있으면 구글신에게 물어보는 것으로 때우곤 했는데
어제는 코딩하다가 막혀버려서 스스로에게 화가 났었다.

그러고보면 어젠 참 우울한 날이었다.
아침에 늦게 일어나 머리도 엉망이고, 벨트가 어디 있는지 보이질 않아서 바지는 흘러내리고, 간만에 노트북을 정리하려고 들고 출근했는데 고장나고, 퇴근하고 났더니 처남은 본 체도 안하고, 아내가 퇴근해서 첫마디가 왜 화냤나고 쏘고..

아내가 내 우울한 얼굴을 바꿔보려고 술한잔하자고 했는데 술집이 비싸서 갈 생각이 들었다 접고, 친구라고 하나 있는게 학원에 있다고 해서
결국 마트에서 까뮤 V.S.O.P 하나 샀다.


오늘은 좀 낫군. 이런저런 생각을 정리 중이다.
개인프로젝트 MyRoom의 컨셉을 바꿔서 다시 하려고 한다.

오늘도 차근차근.

링크들

Online whiteboard Vyew.com - FREE Anytime Collaboration and Live Conferencing™-
리눅스 시스템 모니터링 시스템 최적화

Oracle LOCK 문제를 일으키는 SQL 명령 찾기

B.R.Lee's Homepage (FA,PLC관련자료)

Open web framework Wiki

Oracle Installation on Redhat Linux

파이썬 강좌

IBM Ajax 마스터하기

[HowTo] Apache 2 + Tomcat 5 + mod_jk 통합 설치 설명서

Java WAS 팁 모음(tomcat, resin, apache 등등)

19-Week Free AJAX Programming Online Course

블렌더 한글 튜토리얼(Blender Tutorial Korean)

우린 돈 때문에 일한 게 아니다. 세상을 바꾸기 위해 일했다. -호킨스 @ 애플

우린 돈 때문에 일한 게 아니다. 세상을 바꾸기 위해 일했다. -호킨스 @ 애플
okjsp 에서 본 말이다.

요샌 왠지 맘속에 항상 불안감이 있다.
미래에 대한 불안감이다.
개발자(대개의 엔지니어들도)에 대한 경시풍조도 그렇고, 박봉도 그렇고, 내 기술의 활용이 잘 되지 않는 것도 그렇고, 하루하루 불안함이 마음 바닦 어딘가에 있다.
이것저것 아이디어가 생각나지만 구체적으로 구현하지는 못하고 있다.
자꾸 다른 것들과 연결시키고 혼자서 실망하곤 한다.
이 블로그도 그렇다.
글을 쓴다는 것이 꼭 다른사람에게 보이기 위함이 조금이라도 들어가야 하는 것인지.
내 마음이 깨끗하게 원하는대로 그리고 행동도 원하는대로 하질 못하고 있는 거다.

내가 하고 싶은 건 개발이다. 프로그램 개발.
지금 하고 있는 일이 개발인지 자꾸 햇갈린다.
그리고 그냥 개발이 아닌 사람들을 평등하게 만들 수 있는 그런 개발을 원한다.
당연히 사람은 원래 평등하지 않지만 힘의 평형을 만들고 싶다.
힘없는 사람도 힘있는 사람과 평등해 질 수 있는 그런 것들을 만들고 싶다.
물론 재미있어야 하고.

제일 위에 있는 말을 보고 머릿속이 멈칫 했다.
세상을 바꾸기 위해 일한다라.....
나도 물론 밥그릇 걱정을 하고 있다. 박봉에 마음아픈건 여전하니까.
하지만 정말 원하는 것은 그게 아닌가. 세상이 좀 더 행복해지게 하는 것.
방법을 하나씩 실천하자.
그리고 계속 리팩토링하고 유지보수하면 열매가 보이지 않을까?

지금은 2007년 8월 8일 오후 2시 23분.

또 시작하자.