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。 如下图所示:
可以有两种方法解决: 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服务才能生效。