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

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

新規登録して質問してみよう
ただいま回答率
85.44%
JavaServer Faces

JavaServer Faces(JSF)はJavaをベースとしたコンポーネントベースのwebアプリケーション開発用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

5856閲覧

glassfishからDerbyに接続したい

_panda_

総合スコア14

JavaServer Faces

JavaServer Faces(JSF)はJavaをベースとしたコンポーネントベースのwebアプリケーション開発用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

1クリップ

投稿2016/08/31 11:46

編集2016/09/01 11:05

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

###発生している問題・エラーメッセージ
webからderbyに接続することができません。
手順は以下です。
0. start-domain ドメイン名でglassfishを起動します。
glassfish自体が正常に動いていることは、単純なhtmlの表示で確認済み。
0. start-databaseでderbyを起動します。
この時点で、glassfishのdatabaseフォルダ配下のderby.logに「データベース'DB名称'を起動できません。」が出力されています。

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

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

###試したこと
以下の状況では、DB操作を行うことができます。
0. NetBeansからデバッグ実施。
0. glassfishを起動し、NetBeansにてDerby接続。

###補足情報(言語/FW/ツール等のバージョンなど)
java:jdk1.8.0_91
NetBeans:8.1
glassfish:4.1.1
データベースは、glassfishフォルダ配下のdatabaseフォルダに配置しています。

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

A-pZ👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkmtmkt

2016/08/31 12:08

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

2016/08/31 12:57

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

2016/08/31 14:19

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

2016/09/01 11:01

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

回答2

0

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

sh

1$ cd ~/glassfish4 2$ bin/asadmin start-domain 3$ 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.

sh

1$ 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/08/31 12:51

編集2016/09/01 21:00
tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_panda_

2016/09/01 11:49

記載していただいた通りのコマンドで確認しました。 ポート1527は使用されておらず、同じ状況でnetbeansでは、接続することができています。
tkmtmkt

2016/09/01 12:04

ポート1527が使用されていないならば「java.net.BindException:Address already in use」は表示されないはずです。 どこで何が動いているのかを整理したほうがよいかもしれません。 ・Glassfishはnetbeansで開発を行っている端末上で動かしているのか、別のサーバで動かしているのか。 ・別のサーバで動かしているのであれば「同じ状況でnetbeansでは」というのはそもそも無関係。
_panda_

2016/09/01 13:08

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

2016/09/01 21:48

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

2016/09/06 12:08

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

0

自己解決

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

投稿2016/09/08 11:07

_panda_

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問