阅读:1464
回复:2
|
因特殊情况,需要切换数据库时,需要注意
因项目需要,需要迁移数据库到新的服务器上,迁移过去之后,将原先服务器的数据直接还原到新的服务器上,结果,本地连接服务器的数据库搭建开发环境时,报如下警告:
[WARN] - The requested JMX name [DBCP2JMX:DataSource=h3bpm-jdbc:sqlserver://123.207.147.75:1433;DatabaseName=eport] was not valid and will be ignored. - org.apache.commons.dbcp2.BasicDataSource.jmxRegister(BasicDataSource.java:2342) 然后,下面数据库还是连接的原先的数据库,并报错如下: 数据库错误 - OThinker.Common.Clusterware.ClusterLogWriter.Write(ClusterLogWriter.java:30) OThinker.Common.Data.Database.exception.H3DbException: 数据库错误 at OThinker.Common.Data.Database.CommandExecutor.handleDbException(CommandExecutor.java:1133) at OThinker.Common.Data.Database.SqlExecutor.ExecuteDataTable(SqlExecutor.java:563) at OThinker.Common.Data.Database.CommandExecutor.ExecuteDataTable(CommandExecutor.java:944) at OThinker.Common.Data.Database.SqlExecutor.ExistTable(SqlExecutor.java:125) at OThinker.Common.Data.Database.Serialization.Serializer.EnsureDataTable(Serializer.java:150) at OThinker.Common.Data.Database.Serialization.Serializer.<init>(Serializer.java:141) at OThinker.Common.Data.Database.Serialization.SerializerContainer.GetSerializer(SerializerContainer.java:220) at OThinker.Common.Data.Database.Serialization.SerializerContainer.GetSerializer(SerializerContainer.java:279) at OThinker.Common.Data.Database.Serialization.SerializerContainer.GetSerializer(SerializerContainer.java:263) at OThinker.H3.Engine.BizBus.BizService.InvokingLogManager.<init>(InvokingLogManager.java:35) at OThinker.H3.Engine.BizBus.BizService.InvokingManager.<init>(InvokingManager.java:49) at OThinker.H3.Engine.BizBus.BizBus.OnLoad(BizBus.java:94) at OThinker.H3.Entity.Engine.OnLoad(Engine.java:896) at OThinker.Common.Clusterware.Vessel.Vessel.LoadLogicUnit(Vessel.java:1017) at OThinker.Common.Clusterware.Vessel.FarmVessel.M_Mount(FarmVessel.java:1583) at OThinker.Common.Clusterware.Vessel.FarmVessel.Mount(FarmVessel.java:1534) at OThinker.Common.Clusterware.Vessel.Vessel.MountThreadStart(Vessel.java:459) at OThinker.Common.Clusterware.Vessel.Vessel.access$2(Vessel.java:456) at OThinker.Common.Clusterware.Vessel.Vessel$2.run(Vessel.java:444) Caused by: java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.0.121 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。 at OThinker.Common.Data.Database.DbUtil.getConnectionDirectly(DbUtil.java:63) at OThinker.Common.Data.Database.DbUtil.getConnection(DbUtil.java:39) at OThinker.Common.Data.Database.SqlExecutor.getConnection(SqlExecutor.java:72) at OThinker.Common.Data.Database.SqlExecutor.ExecuteDataTable(SqlExecutor.java:442) ... 17 more Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 192.168.0.121 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241) at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243) at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at OThinker.Common.Data.Database.DbUtil.getConnectionDirectly(DbUtil.java:57) ... 20 more 问题原因是,系统在初始化时,会将配置文件中的数据库存到如下表中, select * from OT_EngineConfig t;因新服务器上的数据是从老服务器上还原而来,因此需要将表中的旧服务器数据库信息,修改成新的服务器数据库信息。 之后,本地重新运行即可。 |