TOMCAT 과 연동을 하는데 계속 톰캣이 죽어서 왜 그러나 했습니다. 이에 대한 질문이 게시판에도 있는데 답변은 없더군요. 알고보니 오라클 9i에서 XDB를 설치하면 리스너를 띄울때 8080 http, 2100 ftp 포트를 사용합니다. 그러니 당연히 충돌을 하지요. XDB를 사용할 일이 없다면 처음 DB생성시 XDB를 만들지 않으면 될 것 같습니다. 리스너 status 를 보거나 리스너 로그를 보면 알 수 있을 것입니다.
이에 대한 해결방법
dbca로 db를 만드는경우 기본 XDB가 들어갑니다. 여기서 XDB를 아예 설치하지 않거나 아니면 설치하더라도 위의 두 포트를 활성화하지 않도록 설정할 수 있습니다.
그런데 이미 XDB가 설치된 경우에는 몇가지 방법이 있습니다.
1. 두 포트를 disable 하기
이에 대한 방법은 아직 모르겠습니다.
2. XDB 테이블을 없애기
한국 otn 의 기술지원게시판에 해당 내용이 있습니다. xdb로 검색해보시면 됩니다.
dbca에서 xdb 관련하여 /home/oracle/ora920/rdbms/admin/catqm.sql, /home/oracle/ora920/rdbms/admin/catxdbj.sql 을 실행하는데 아래에서 보니 catnoqm.sql만 실행하면 되네요.
http://211.106.111.2:8880/bulletin/list.jsp
No. 20221
XML DATABASE (XDB) INSTALL 및 DEINSTALL 방법
=========================================
PURPOSE
-------
xdb.dbf file이 os상에서 삭제된 경우와 같이 경우에 따라 XDB를 deinstall하고,
다시 install해야 하는 경우가 발생할 수 있다.
이 문서에서는 그에 관한 방법을 기술하며, Oracle 9.2.0.1 환경에서 test되었다.
Explanation & Example
----------------------
1. XDB 삭제 방법
(1) database를 restart시킨다.
(2) sysdba로 접속하여 catnoqm.sql script를 수행한다.
cd $ORACLE_HOME/rdbms/admin
SQL> connect / as sysdba
SQL> set echo on
SQL> spool xdb_removal.log
SQL> @catnoqm.sql
2. XDB install방법
(1) XDB schema 생성을 위해 다음 두 parameter를 최소한 아래 정도 크기 이상으로
설정한다.
shared_pool_size =150MB
java_pool_size =150MB
(2) XDB tablespace가 지워진 경우 재 생성하고 이때, auto extend option은 on시킨다.
(3) db를 restartup한다.
(4) sysdba로 접속하고 catqm.sql을 수행한다.
이때 xdb user password xdb의 default tablespace, temporary tablespace이름을
argument로 지정하여야 한다.
즉, 다음과 같이 하면 된다.
cd $ORACLE_HOME/rdbms/admin
SQL> spool xdb_install.log
SQL> @catqm.sql
SQL> @catqm.sql XDB XDB TEMP
(5) invalid된것 없이 정상적으로 설치되었는지 확인한다.
SQL> select count(*) from dba_objects
where owner='XDB' and status='INVALID';
COUNT(*)
----------
0
(6) Check DBA_REGISTRY for XDB status:
SQL> select comp_name, status, version from DBA_REGISTRY
where comp_name= 'Oracle XML Database'
COMP_NAME
--------------------------------------------------------------
STATUS VERSION
----------- ------------------------------
Oracle XML Database
VALID 9.2.0.1.0
Reference Documents
------------------------
3. 포트를 바꾸기
이에 대해서는 다른 분이 보내주신 자료를 이용하여 바꾸었습니다. 자료출처는 정확히 모르겠네요?
아래 내용은 sys 사용자로 진행해야합니다.
Bookmark Fixed font Go to End
Doc ID: Note:209564.1
Subject: XDB: Utility package to change the HTTP and FTP ports used by XML DB.
Type: BULLETIN
Status: REVIEW_READY
Content Type: TEXT/PLAIN
Creation Date: 04-SEP-2002
Last Revision Date: 16-DEC-2002
*************************************************************
This article is being delivered in Draft form and may contain
errors. Please use the MetaLink "Feedback" button to advise
Oracle of any issues related to this article.
*************************************************************
PURPOSE
-------
To provide the ability to alter the ports which an XML DB uses for HTTP and FTP.
SCOPE & APPLICATION
-------------------
By default the XML Database (XDB) comes preconfigured with
the http port set to 8080 and the ftp port set to 2100.
If this conflicts with other applications on your server, or you want to run
2 database instances then you need to be able to alter the ports which xdb uses.
The recommended way of doing this is via the XML Database Parameters window of
the Oracle Enterprise Manager (OEM) console, however if you have not installed
this, or do not have access to it, ! this package provides the ability to change
the ports via SQL.
This script must be run as sys.
Once it is installed you can change the port using the commands:
call xdb_utility.set_http_port(n)
and
call xdb_utility.set_ftp_port(m)
To verify that this has worked, drop to the operating system prompt and issue
lsnrctl status
And look for the entries under
Listening Endpoints Sumary...
e.g.
before:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=2100))(Presentation=FTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=8080))(Presentation=HTTP)(Session=RAW))
after:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=2105))(Presentation=FTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=8081))(Presentation=HTTP)(Session=RAW))
Note that it not necessary to restart either the database or the listener for these values to change.
Utility package to change the HTTP and FTP ports used by XML DB.
-----------------------------------------------------------------
CREATE OR REPLACE PACKAGE XDB_UTILITY
as
procedure SET_HTTP_PORT (PORT_NUMBER number);
procedure SET_FTP_PORT (PORT_NUMBER number);
end XDB_UTILITY;
/
show errors
--
create or replace package body XDB_UTILITY as
--
FTP_XPATH varchar2(256) := '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port';
HTTP_XPATH varchar2(256) := '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port';
--
procedure SET_XDB_PORT(PORT_XPATH varchar2, PORT_NUMBER number)
as
config XMLType;
begin
config := dbms_xdb.cfg_get();
select updateXML(config, PORT_XPATH, PORT_NUMBER)
into config
from dual;
dbms_xdb.cfg_update(config);
commit;
dbms_xdb.cfg_refresh();
end;
----
-- Create the SET_HTTP_PORT and SET_FTP_PORT functions
--
procedure SET_HTTP_PORT(PORT_NUMBER number)
as
begin
SET_XDB_PORT(HTTP_XPATH || '/text()', PORT_NUMBER);
end;
--
procedure SET_FTP_PORT(PORT_NUMBER number)
as
begin
SET_XDB_PORT(FTP_XPATH || '/text()', PORT_NUMBER);
end;
--
end XDB_UTILITY;
/
show errors
--
create or replace public synonym XDB_UTILITY for XDB_UTILITY
/
grant execute on XDB_UTILITY to XDBADMIN
/
Keywords:
---------
XMLDB
XDB
PORT
8080
2100
.
Copyright (c) 1995,2000 Oracle Corporation. All Rights Reserved. Legal Notices and Terms of Use.
|