sql >> データベース >  >> RDS >> Oracle

groovy sqlで接続タイムアウトを設定するにはどうすればよいですか?

    Groovy SQLはタイムアウトを制御しません。それは、ドライバー(あなたの場合はOracle)次第です。クエリにタイムアウトを設定する場合は、この回答 をご覧ください。 。

    接続レベルの設定が必要な場合(それぞれにタイムアウトを適用して複数のクエリにSQLオブジェクトを再利用できるようにするため)、独自の接続を設定し、それをGroovyのSQLファサードに渡す必要があります。このように

    def dev_env = [
      url:"jdbc:oracle:thin:@//aguat:1521/orcl",
      user:"ricky",
      password:"ricky",
      driver:"oracle.jdbc.OracleDriver"
    ]
    Class.forName(dev_env['driver'])
    def conn = DriverManager.getConnection(dev_env['url'], dev_env['user'],dev_env['password'])
    conn.setNetworkTimeout(null, 10000)
    def sql = new Sql(conn)
    

    setNetworkTimeout()に注意してください メソッドはJava7で追加されました。古いバージョンのJavaを使用している場合は、この回答"oracle.jdbc.OracleDriver"を使用できます OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECT_TIMEOUTの代わりに Oracle jarへのコンパイルの依存関係を回避したい場合は、回答に記載されているフィールド)。

    繰り返しになりますが、GroovyのSQLは接続設定を変更または制御しないため、デフォルトのタイムアウトはOracleのドライバのデフォルトになります。




    1. SQLのXMLからサブタグの数を数える

    2. タイプ'Oracle.EntityFrameworkCore'の'メソッド'get_Info'を修正する方法には実装がありません。

    3. Yii CActiveDataProviderオブジェクトを反復処理する方法は?

    4. comaprison演算子のMySQLの奇妙な動作(!=/ <>)、つまりNotEqualTo