質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.01%

glassfishからDerbyに接続したい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,747

_panda_

score 12

前提・実現したいこと

derbyへの接続ができずに困っています。
会社から本サイトへ投稿することができないため、恐れ入りますが、返答、バージョンの確認、ソースの開示等、タイムラグが発生します。

発生している問題・エラーメッセージ

webからderbyに接続することができません。
手順は以下です。

  1. start-domain ドメイン名でglassfishを起動します。
    glassfish自体が正常に動いていることは、単純なhtmlの表示で確認済み。
  2. start-databaseでderbyを起動します。
    この時点で、glassfishのdatabaseフォルダ配下のderby.logに「データベース'DB名称'を起動できません。」が出力されています。

上記のメッセージより先に、以下のメッセージが出力されていました。
ホストlocalhostのポート1527をリスニングできませんでした:
java.net.BindException:Address already in use: JVM_Bind

netstatで確認したところ、1527のポートを使用しているものはありませんでした。
上記ログ出力時でも、netbeansでは接続することができました。

試したこと

以下の状況では、DB操作を行うことができます。

  1. NetBeansからデバッグ実施。
  2. glassfishを起動し、NetBeansにてDerby接続。

補足情報(言語/FW/ツール等のバージョンなど)

java:jdk1.8.0_91
NetBeans:8.1
glassfish:4.1.1
データベースは、glassfishフォルダ配下のdatabaseフォルダに配置しています。

何か特別な設定が必要でしょうか?
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • tkmtmkt

    2016/08/31 21:08

    ログについて、どこのログファイルに何が出力しているかまで記述したほうが良いです。
    「以下の状況では、DB操作を行うことができます。」との記述がありますが、エラーが出たときの操作を記述したほうが良いです。

    キャンセル

  • _panda_

    2016/08/31 21:57

    ご指摘ありがとうございます。
    手順を追加してみました。

    キャンセル

  • tkmtmkt

    2016/08/31 23:19

    起動/停止を行ってみたら derby.log よりも start-database を実行して表示されるメッセージのほうが情報が多いようですが、start-databaseの実行結果にはどのようなメッセージが表示されていたでしょうか。

    キャンセル

  • _panda_

    2016/09/01 20:01

    start-database実行時のコマンド画面では、特にエラーメッセージは出力されず、成功メッセージが表示されています。

    キャンセル

回答 2

+2

http://download.java.net/glassfish/4.1.1/release/glassfish-4.1.1.zip をダウンロード/解凍して以下のコマンド実行すると問題なくデータベースを起動できました。
コマンドライン引数以外の設定変更手段が見当たらないので、ポート番号衝突以外でデータベース起動不能事象を発生させる方法を見つける方が難しいです・・・。

$ cd ~/glassfish4
$ bin/asadmin start-domain
$ bin/asadmin start-database
Starting database in Network Server mode on host 0.0.0.0 and port 1527.
--------- Derby Network Server情報 --------
バージョン: CSS10100/10.10.2.0 - (1582446)  ビルド: 1582446  DRDA製品ID: CSS10100
-- listing properties --
derby.drda.traceDirectory=/srv/home/takamatu/apps/glassfish4/gl...
derby.drda.maxThreads=0
derby.drda.sslMode=off
derby.drda.keepAlive=true
derby.drda.minThreads=0
derby.drda.portNumber=1527
derby.drda.logConnections=false
derby.drda.timeSlice=0
derby.drda.startNetworkServer=false
derby.drda.host=0.0.0.0
derby.drda.traceAll=false
------------------ Java情報 ------------------
Javaバージョン:    1.8.0_101
Javaベンダー:     Oracle Corporation
Javaホーム:       /usr/lib/jvm/java-8-oracle/jre
Javaクラスパス:    /srv/home/takamatu/apps/glassfish4/glassfish/lib/asadmin/cli-optional.jar:/srv/home/takamatu/apps/glassfish4/javadb/lib/derby.jar:/srv/home/takamatu/
apps/glassfish4/javadb/lib/derbytools.jar:/srv/home/takamatu/apps/glassfish4/javadb/lib/derbynet.jar:/srv/home/takamatu/apps/glassfish4/javadb/lib/derbyclient.jar
OS名:           Linux
OSアーキテクチャ: amd64
OSバージョン:     3.19.0-66-generic
Javaユーザー名:    takamatu
Javaユーザー・ホーム: /srv/home/takamatu
Javaユーザー・ディレクトリ:   /srv/home/takamatu/apps/glassfish4
java.specification.name: Java Platform API Specification
java.specification.version: 1.8
java.runtime.version: 1.8.0_101-b13
--------- Derby情報 --------
[/srv/home/takamatu/apps/glassfish4/javadb/lib/derby.jar] 10.10.2.0 - (1582446)
[/srv/home/takamatu/apps/glassfish4/javadb/lib/derbytools.jar] 10.10.2.0 - (1582446)
[/srv/home/takamatu/apps/glassfish4/javadb/lib/derbynet.jar] 10.10.2.0 - (1582446)
[/srv/home/takamatu/apps/glassfish4/javadb/lib/derbyclient.jar] 10.10.2.0 - (1582446)
------------------------------------------------------
----------------- ロケール情報 ----------------
現行ロケール:  [日本語/日本 [ja_JP]]
≪省略≫
ロケールのサポートが見つかりました: [ja_JP]
         バージョン: 10.10.2.0 - (1582446)
≪省略≫
------------------------------------------------------
------------------------------------------------------

Starting database in the background.
Log redirected to /srv/home/takamatu/apps/glassfish4/glassfish/databases/derby.log.
Command start-database executed successfully.
$ cat glassfish/databases/derby.log
Thu Sep 01 00:05:39 JST 2016 : セキュリティ・マネージャがBasicサーバー・セキュリティ・ポリシーを使用してインストールされました。
Thu Sep 01 00:05:40 JST 2016 : Apache Derby Network Server - 10.10.2.0 - (1582446)が起動し、ポート1527で接続の受入れ準備が完了しました
Thu Sep 01 00:05:40 JST 2016 : Apache Derby Network Server - 10.10.2.0 - (1582446)が起動し、ポート1527で接続の受入れ準備が完了しました

 追記

以下のメッセージは1527ポートがすでに使われている状態であることを示しています。

ホストlocalhostのポート1527をリスニングできませんでした: 
java.net.BindException:Address already in use: JVM_Bind

netstatコマンドでの確認は以下の通りです。

# CentOSで確認
$ ss -natl

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:1527            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
# Windowsで確認

> netstat -nap TCP | find "1527"
  TCP    127.0.0.1:1527         0.0.0.0:0              LISTENING
  TCP    127.0.0.1:1527         127.0.0.1:59494        ESTABLISHED
  TCP    127.0.0.1:59494        127.0.0.1:1527         ESTABLISHED

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/01 22:08

    Glassfishもnetbeansも同じ端末上で動かしています。
    netbeansからjavadbを起動した場合は、1527ポートを使用していることは確認できました。

    キャンセル

  • 2016/09/02 06:48

    netbeansでjavadbを起動していると1527ポート使用状態となり、その状態glassfishでstart-databaseしたら1527ポートが使用されているためデータベースの起動に失敗します。

    glassfishにデプロイしたアプリケーションから、netbeansで起動したjavadbに接続できることを端末上で確認したいだけでしたら、glassfishでstart-databaseを実行する必要ないです。
    プログラムでデータベース接続先をIPアドレスとポートで指定しているならば、glassfishでプログラム動かしてもnetbeansで起動したデータベースに接続できるはずです。

    キャンセル

  • 2016/09/06 21:08

    glassfishのコンソール画面で確認したところ、新しく作成したDB(接続したいDB)ではなく、デフォルトのjavaDBに接続されていることが確認できました。
    接続を新規作成しようとするとエラーが発生し、接続poolを変更しようとしたところ、保存されずに困っています。

    キャンセル

check解決した方法

0

javaDBが起動していることは確認できました。
他の問題のため、別スレッドを作成します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.01%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる