タグ

ブックマーク / n-agetsuma.hatenablog.com (7)

  • PostgreSQL JDBCドライバのタイムアウト設定 - n-agetsumaの日記

    OracleのJDBCドライバと同様に、PostgreSQLのJDBCドライバにも同様のタイムアウト設定が用意されています。@yamadamnさんがWebLogicServer + Oracle JDBC向けにまとめた資料Oracle JDBCドライバプロパティの活用を参考に、WildFly + PostgreSQL版のタイムアウト設定を以下にまとめます。 データベース接続時のタイムアウト PostgreSQLのデータベース接続時のタイムアウトには2種類のパラメータがあります。いずれもデフォルトは未設定で、Javaのレイヤではタイムアウトの設定はされず、NW障害時やDBハングアップ時にはOSのTCP接続タイムアウトまで待ちます。 loginTimeout=<秒> このタイムアウト設定はTCP接続のタイムアウトではなく、ログイン処理全体のタイムアウトを示します。PostgreSQLへのログイ

    PostgreSQL JDBCドライバのタイムアウト設定 - n-agetsumaの日記
  • Java SE 7のProcessBuilderでリダイレクト - n-agetsumaの日記

    Java SE 7よりJavaから外部コマンドを実行できるProcessBuilderに便利な機能が追加されている。pingを実行してファイルにリダイレクトが簡単にできるなど、派手ではないが嬉しい機能追加である。以下では、追加された機能を使って色々なpingを実行してみる。 ping結果をパイプ経由の入力ストリームから取得 ProcessBuilder pb = new ProcessBuilder("ping", "-c", "3", "127.0.0.1"); try { Process p = pb.start(); // ping が完了するのを待つ p.waitFor(); // 実行結果を取得するストリームの種別を出力 System.out.println(pb.redirectInput()); try (BufferedReader br = new BufferedRea

    Java SE 7のProcessBuilderでリダイレクト - n-agetsumaの日記
  • JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記

    JDK8およびJDK8u20では、GCログに関連する2つの便利な機能が追加されている。いずれの機能も2014/8現在最新のJDK7 update 67 には含まれていないが、JDK7u80にてバックポートされる予定。 GCログにpidと日付を含める (JDK8より) JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/wildfly/gc_%p_%t.log" => 実際のファイル名例 : gc_pid31455_2014-08-31_14-20-16.log.0GCログのフォーマットに%pを入れるとpid形式のプロセスIDが付与される。また%tを付与すると"_2014-08-31_14-20-16"のようにGCログファイルを作成した日付時分秒が追加される。かつてGCログはJavaを再起動すると同じファイルが上書きされて消えてしまうため、出力先を-Xloggc:g

    JDK8からあるちょっと嬉しいGCログオプション - n-agetsumaの日記
  • JSF2.xでValidationグループを設定する - n-agetsumaの日記

    BeanValidation1.0では、@NotNullなどの各検証アノテーションにgroup属性を設定することができます。これは、同じドメインオブジェクトに対して、検証のルールのパターンが複数ある場合に有効です。 例えば、以下のような画面を想定してみます。 の登録では、ISBNコードとタイトルの両方の入力を必須とします。検索の場合は、どちらか一方が指定されていれば良いこととします。この入力値がバインドされるドメインオブジェクトは両方ともを示すBookクラスです。 /** 検索の場合にも両方とも必須入力となるケース */ public class Book { @NotNull private String isbn; @NotNull private String title; // getterとsetterは省略 } 上記のように、何もグループを指定せずに@NotNullをフィー

    JSF2.xでValidationグループを設定する - n-agetsumaの日記
    nagasama
    nagasama 2014/06/18
  • BeanValidationで日本語メッセージを出力する - n-agetsumaの日記

    BeanValidation1.0の参照実装であるHibernate Validatorのデフォルトメッセージは英語です。 例えば@NotNullでは「may not be null」、@AssertTrueでは「must be true」といったメッセージが出力されます。通常、JSF2.0を組み合わせて使うときには『"名前"が入力されていません』のように、日語でかつ入力箇所をメッセージとして出力したいかと思います。 具体例を紹介すると、以下のようなコードを書いた場合のメッセージ表示についてです。 こんな入力フォーム(facelets/XHTML)を作って <h:inputText id="isbn" label="ISBNコード" value="#{controller.book.isbn}" /> <br/> <h:message for="isbn" errorStyle="col

    nagasama
    nagasama 2014/06/17
  • JSF2.0でボタンの2度押しチェックをする - n-agetsumaの日記

    この記事は Java EE Advent Calendar 2012*1 の12/18分の記事です。 昨日は@yumix_hさんの JAX-RSでファイルアップロード! です。 明日は@den2snさんです。 今回は、ボタンの2度押しチェックについて考えてみたいと思います。 1. ボタンの2度押しとは 2度押しと書くと、直感的にSubmitボタンを連打されることが思い浮かびますが、Webアプリケーションでよくある問題として、画面遷移後にF5(更新)された場合も意図しない多重POSTが発生します。以下の図をみてください。 JSF2.0を使う場合に、それぞれの2度押しにどう対処するかを以下に示します。特に2つ目に紹介するトークンの実装は手間がかかったので、もっとシンプルな方法があれば大歓迎です。 2. Post-Redirect-Getによって、ブラウザ更新による再POSTを防ぐ Post-R

    JSF2.0でボタンの2度押しチェックをする - n-agetsumaの日記
    nagasama
    nagasama 2014/06/16
  • JSF2.0のエラーハンドリング - n-agetsumaの日記

    JSF2.0のエラーハンドリングについて調べてみたのでまとめる。 ここで言う『エラーハンドリング』とは、Struts1.xの<globa-exceptions>や、org.apache.struts.action.ExceptionHandlerを継承してユーザが作成するカスタム例外ハンドラを想定しており、Struts1.xと同じようなことがJSF2.0でも可能か確かめることが目的だ。 今回は、以下のようなバッキングBeanからランタイム例外が投げられた場合に、スタックトレースが表示されないようにしたい。 @Model public class BookController { @EJB private BookService service; @Inject private Book book; public String createBook() { service.persist(b

    JSF2.0のエラーハンドリング - n-agetsumaの日記
    nagasama
    nagasama 2014/06/15
  • 1