2012-05-01 13 views
0

Javaで作成されたサーバーを作成します。サーバーはポート111で要求を受け入れ、クライアントがサーバーに接続するとJSONファイルを送信します。サーバーはJSONを受け取り、postgresデータベースに格納する必要があります。javaサーバーのpostgres情報

私の質問は、postgres接続を管理する方法です。

1つのConnectionを作成し、それをすべてのクライアント要求に対して同期するか、サーバーに接続されているすべてのクライアントに対して新しい接続を作成する必要があります。

私は意味:

---------つだけの接続:--------------

サーバが持つ唯一つの接続を作成します

_connection = DriverManager. 
    getConnection("jdbc:postgresql:"+_dbName, _username, _password); 

、すべてのクライアントのため

syncronize(_connection) { send data to database } 

この接続を使用---------すべてのクライアントの接続-------------

サーバーたときに接続されたクライアントのために新しい接続を作成

_clientConnection = DriverManager. 
    getConnection("jdbc:postgresql:"+_dbName, _username, _password); 

クライアント要求を受け入れ、すべてのクライアントは、個人的なつながりを持っています。

誰もがこのようなことをするための最良の練習方法を説明することはできますか?私はMySQLと同じだと思います。

答えて

4

接続のプールを使用することをお勧めします。これは

  • 複数のクライアントが同時に
  • オープン接続の数は常に合理的なままで、同時要求の数が多い場合には、その膝にサーバーやデータベースを入れていないデータベースにアクセスできることを確認します
  • 接続が常に開いたり閉じたりすることはありません。接続を開くには時間とメモリが必要です。

利用可能な接続プールがいくつかあります(C3P0、DBCPなど)。 Googleはあなたの友人です。

+0

私はGoogleでこのコードを設立、ありがとう: http://www.postgresql.org/docs/7.4/static/jdbc-datasource.html 私の質問は、私はpostgresにセットアップ何にも私が必要Jdbc3PoolingDataSourceを使用して、ありますLinuxサーバ(私のLinuxマシン上のいくつかの設定ファイルを編集するようなもの)?? – BQuadra

+0

私はなぜあなたがすべきかわかりません。 postgresサーバ上の利用可能な接続の数がプールの最大接続数と一致するようにしてください。しかし、dbサーバーの場合、プールされた接続はプールされていない接続と同じです。 –

関連する問題