alibaba corba timeout问题

00:32:26,258 WARN [thread=Processor1-E15,class=ServerConnection,host=10.1.1.91,port=2441,schema=facebook_onlinegame_db]global_new.default{SHOW FULL TABLES LIKE 'PROBABLYNOT'}
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:228)
at java.util.concurrent.FutureTask.get(FutureTask.java:91)
at com.alibaba.cobar.server.node.MySQLChannel.connect(MySQLChannel.java:185)
at com.alibaba.cobar.server.node.MySQLDataSource.getChannel(MySQLDataSource.java:156)
at com.alibaba.cobar.server.node.MySQLDataNode.getChannel(MySQLDataNode.java:115)
at com.alibaba.cobar.server.node.MySQLDataNode.getChannel(MySQLDataNode.java:107)
at com.alibaba.cobar.server.executor.MultiNodeExecutor$3.run(MultiNodeExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)  

      最近发现corba的stout.log有时警告级别的日志,看起来是新建网络链接时time out异常,于是checkout corba的源码,追踪到相应的代码行,发现确实是由于超时引起的异常,corba也提供的相应的参数对这个时间进行配置,于是将time out设置到60秒,原来corba配认是10秒。进一步分析,我觉得原因可能是公司内部使用vpn,连接数据库也是通过vpn过去,由于网络不稳定,导致创建新连接时超时。

corba相应的超时设定,在schema.xml中 dataNode节点 waitTimeout属性

<!--数据节点由主、备数据源,心跳,连接池等配置组成。-->
	<dataNode name="dn_shards">
		<property name="dataSource">
			<!--第一行dataSourceRef表示主数据源-->
			<!--
				三个数据节点的主数据源,可用逗号分隔,支持$1-3的缩写形式, 表示ds_shard_master[1],
				ds_shard_master[2], ds_shard_master[3]
			-->
			<dataSourceRef>facebook_onlinegame_ds_shards[0],facebook_onlinegame_ds_shards$1-3</dataSourceRef>
			<!--第二行dataSourceRef表示备数据源-->
			<!-- <dataSourceRef>ds_single_slave</dataSourceRef> -->
			<!--如果需要一主多备的情况,可以将第二备数据源配置在第三行,以此类推-->
			<!-- <dataSourceRef>ds_single_slave2</dataSourceRef> -->
		</property>
		<!--Cobar与后端数据源连接池大小设置-->
		<property name="poolSize">16</property>
		<!--Cobar通过心跳来实现后端数据源HA,一旦主数据源心跳失败,便切换到备数据源上工作-->
		<!--Cobar心跳是通过向后端数据源执行一条SQL语句,根据该语句的返回结果判断数据源的运行情况-->
		<property name="heartbeat">select 1</property>
		<property name="waitTimeout">60000</property>
	</dataNode>

  

 

 

 

     

posted @ 2012-12-13 13:29  摇摆的蒜头酥  阅读(952)  评论(0编辑  收藏  举报