Change XMLDB Ports

1 Windows下通过netstat -an -o -b可知是TNSLSNR.exe占用了8080端口
2 此方法解决Oracle端口与Tomcat等web服务器默认端口冲突的问题
3 修改立即生效

Change XMLDB Ports

This document explains how to change the default ports (8080 for HTTP and 2100 for FTP) in XMLDB.
Oracle XMLDB uses the ports 2100/8080 by default. Sometimes there are problem with other webservers (e.g. JBOSS) running on the same port.

Even if the package dbms_xdb is granted to PUBLIC you need DBA privileges to change the ports.

-- change HTTP port from 8080 to 8083
call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(), '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()', 8083));

-- change FTP port from 2100 to 2111
call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get(), '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()' , 2111));

-- refresh settings
exec dbms_xdb.cfg_refresh;

 

 

****************************************************************************

tomcat 和 OracleSQL的监听器服务 端口冲突
2007年07月05日 星期四 16:28

本人在启动tomcat时有以下错误。

2007-7-5 16:08:28 org.apache.coyote.http11.Http11Protocol init
严重: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:264)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:137)
at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1429)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:609)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2384)
at org.apache.catalina.startup.Catalina.load(Catalina.java:507)
at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:250)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:424)
2007-7-5 16:08:28 org.apache.catalina.startup.Catalina load
严重: Catalina.start
LifecycleException:   Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.coyote.tomcat5.CoyoteConnector.initialize(CoyoteConnector.java:1431)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:609)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:2384)
at org.apache.catalina.startup.Catalina.load(Catalina.java:507)
at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:250)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:424)

经过本人研究此错误归纳为:严重: Error initializing endpoint
                           严重: Error starting endpoint
                           严重: Catalina.start
                           严重: StandardServer.await: create[8005]:

经过本人研究得出以下结论:tomcat的默认端口为8080而oracle9i中的TNSLSNR.exe进程占用了。

DLL 文件: tnslsnr.exe
DLL 名称: tnslsnr.exe
  
描述:
OracleSQL的监听器服务。


同时你可在cmd窗口中输入netstat -anb 然后回车。即可查看所有的端口占用情况。

此问题还有一个表象:就是输入网页地址会弹出一个要求输入用户名和密码的窗口,窗口名字是叫XDB。
如下图所示:

Change XMLDB Ports


可以有两种方法解决:
1. 改tomcat的监听端口.
修改$tomcat_home/config/server.xml中host节点的port值
2.修改oracle默认的xdb监听端口
Oracle 9i创建数据库时默认包含了XDB特性。一旦启动了数据库和Listener,Oracle XDB的http服务就占用8080端口,
刚好和JBoss、Tomcat等默认端口冲突,Oracle XDB的端口设置不在配置文件中,而是在数据库里。
修改XDB的http和ftp服务端口的方法有3种:

1、使用sys登录Oracle,利用dbms_xdb修改端口设置

-- Change the HTTP/WEBDAV port from 8080 to 8081
call dbms_xdb.cfg_update(updateXML(
dbms_xdb.cfg_get()
, '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
, 1581));
/

-- Change the FTP port from 2100 to 2111
call dbms_xdb.cfg_update(updateXML(
dbms_xdb.cfg_get()
, '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
, 1511));
/
COMMIT;


EXEC dbms_xdb.cfg_refresh;


2、使用OEM console,选择数据库,XML Database,Configuration,更改XDB的有关设置。

3、去掉数据库的初始化参数:

dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)',将会禁止XDB的http和ftp服务。

*********************************************************************************

以上是从网络上找的用命令语句来修改listener port 的方法,但是我试了一试,系统总是报告XDB.DBMS_XDB view 不存在。现在我还没有找出原因!

 

但是下面方法可以很容易修改FTP,WEBDAV port -->2103 ; Http -->8083

使用Oracle 自带的工具Database Configration Assistant:

 当然,修改完后,要重新启动listener服务才能生效。

 

 

你可能感兴趣的:(java,apache,oracle,tomcat,sun)