局域网中一台2003的服务器装了oracle9i数据库,现在从另一台机器通过oracle9i客户端访问。如果服务器关闭防火墙,客户端可以连接;如果打开防火墙,且1521端口已经选择开启,但还是无法连接。
网上找了点相关资料,设定了USE_SHARED_SOCKET=TRUE,也还是没有效果。
请有实际解决经验的朋友指教,谢谢!

解决方案 »

  1.   

    网上的解决方法修改:参照下
    init.ora
    最后一条加上
    mts_dispatchers="(address=(protocol=tcp)(host=XXX)(port=1521))(dispatchers=1)" 
    以下是资料要在MTS模式下(共享模式) Oracle默认是专用模式。 
    经试验发现,如果不在init文件中设参数的话,Oracle仍然会要求一个随机端口和1521端口来共同通讯,只是这个随机端口,并不随客户端会话和登录的变化而变化,在没有重启服务器时,是固定的。 (试验发现,在专用模式下,每次连接,oracle服务器会按+1方式,提供一个非1521的端口。) 所以,还需要在init.ora文件的最后加上一条参数: 
    mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)" 这样才真正实现只用一个端口,穿过防火墙。
      

  2.   

    1.Oracle8.1.7与Oracle9i还是有所区别的;
    2.软件防火墙和硬件防火墙也有很大的不同。多用网上的资料试一试吧!