2013-08-23 2 views
1

У меня есть googled и найдено много документов и веб-страниц, в которых говорится, что я должен установить oracle.net.ns.SQLnetDef.TCP_CONNTIMEOUT_STR до 3 секунд. Мне не удалось найти пример того, как именно это сделать.Как установить oracle.net.ns.SQLnetDef.TCP_CONNTIMEOUT_STR

Является ли это свойство уровня системы, которое я могу установить с помощью -Doracle.net.ns.SQLnetDef.TCP_CONNTIMEOUT_STR = 3 или что? Файл свойств? Пример конфигурации Spring?

У меня есть обычное java-приложение с ojdbc.jar в пути к классам. Бобы настроены/подключены с использованием Spring xml.

<bean id="myDataSource" destroy-method="close" 
    class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${my.jdbc.driverClassName}" /> 
    <property name="url" value="${my.jdbc.url}" /> 

    <!-- cut --> 
</bean> 

ответ

0

Try и установить это свойство для BasicDataSource боба:

<property name="connectionProperties" value="oracle.net.CONNECT_TIMEOUT=3000" /> 

Ссылка: Дно https://forums.oracle.com/thread/867795

+0

ваше предложение не работает, по крайней мере, не весной 3.1 Это работало для вас? страница, на которую вы ссылаетесь, это использование класса CustomOracleDataSource – hidralisk

+0

Тип источника данных не должен иметь значения, свойство передается в базовый драйвер JDBC. Как точно это не сработало? AFAIK это свойство устанавливает тайм-аут соединения для установления соединений с БД, и вы пытались подключиться к невосприимчивому узлу базы данных? – Jukka

1

Чтобы установить оракула тайм-аут соединения на уровне сокетов для basicdatasource

1) использовать последний базовый источник данных -> commons-dbcp -1.4.jar

2) для jdbcdriver версии> 10.1.0.5

 
add property &ltproperty name="connectionProperties" value="oracle.jdbc.ReadTimeout=20000"/> 

или jdbcdriver версии < 10.1.0.5

 
add &ltproperty name="connectionProperties" value="oracle.net.READ_TIMEOUT=20000"/>