2

Oracle Data Guard のデモンストレーションを行うサンプル アプリケーションを試しています。Oracle DB からデータを取得するための単純な Java サーブレットを作成しました。

サーブレットは次のようになります。

package com;

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class DisplayServlet extends HttpServlet {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();



        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con=DriverManager.getConnection("jdbc:oracle:thin:@10.10.220.4:1529:poc","poc","poc");

            PreparedStatement ps=con.prepareStatement("select * from admin_emp");
            //ps.setInt(1,roll);

            out.print("<table width=50% border=1>");
            out.print("<caption>Result:</caption>");
            ResultSet rs=ps.executeQuery();

            /* Printing column names */
            ResultSetMetaData rsmd=rs.getMetaData();
            int total=rsmd.getColumnCount();
            out.print("<tr>");
            for(int i=1;i<=total;i++)
            {
                out.print("<th>"+rsmd.getColumnName(i)+"</th>");

            }
            out.print("</tr>");

            /* Printing result */
            while(rs.next())
            {
                out.print("<tr><td>"+rs.getInt(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+"</td><td>"+rs.getString(4)+"</td></tr>");

            }
            out.print("</table>");

        }catch (Exception e2) {e2.printStackTrace();}

        finally{out.close();}
    }

}

したがって、このデータベースが失敗したときの私の質問は、タイムアウト例外がスローされる前に、別のホストの他のデータベースに自動的に接続する必要があります。

4

2 に答える 2

-1

タイムアウト例外前?

別のスレッドで時間を計算し、指定された時間に接続変数をサーバーに変更します。

于 2013-08-30T09:48:34.847 に答える