2015-06-21 96 views
0

我剛剛用DIY墨盒創建了一個新應用程序,併爲它添加了一個MySQL墨盒。我也能夠在線部署應用程序。 我無法將GlassFish管理控制檯與OpenShift一起使用,但我需要設置JDBC資源連接池。我正在嘗試使用我的本地glassfish服務器編輯遠程glassfish服務器的domains.xml。我仍然無法連接到數據庫。這是我迄今所做的:在Openshift上設置GlassFish-Mysql連接池

<jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="SamplePool" res-type="javax.sql.DataSource"> 
     <property name="User" value="adminvcsHiYw"></property> 
     <property name="DatabaseName" value="timetable"></property> 
     <property name="serverName" value="127.8.28.2"></property> 
     <property name="PortNumber" value="3306"></property> 
     <property name="URL" value="jdbc:mysql://127.8.28.2:3306/timetable"></property> 
     <property name="Password" value="_R-LrpYIcdUf"></property> 
    </jdbc-connection-pool> 

這是rhc tail -a appname

==> app-root/logs/mysql.log <== 
150621 7:55:43 InnoDB: highest supported file format is Barracuda. 
150621 7:55:43 InnoDB: Waiting for the background threads to start 
150621 7:55:44 InnoDB: 5.5.41 started; log sequence number 1686690 
150621 7:55:44 [Note] Server hostname (bind-address): '127.8.28.2'; port: 3306 
150621 7:55:44 [Note] - '127.8.28.2' resolves to '127.8.28.2'; 
150621 7:55:44 [Note] Server socket created on IP: '127.8.28.2'. 
150621 7:55:44 [Warning] 'proxies_priv' entry '@ [email protected]' ignored in --skip-name-resolve mode. 
150621 7:55:44 [Note] Event Scheduler: Loaded 0 events 
150621 7:55:44 [Note] /opt/rh/mysql55/root/usr/libexec/mysqld: ready for connections. 
Version: '5.5.41' socket: '/var/lib/openshift/5585ff875004465b5500013a/mysql//socket/mysql.sock' port: 3306 MySQL Community Server (GPL) 
` 

我在做什麼錯輸出?誰能幫忙?

回答

1

所以要舉辦一個Java應用程序使用Openshift一個GlassFish服務器上運行,則需要:從GitHub

  • 克隆glassfish DIY你要使用。 domain.xml配置文件已被修改爲在OpenShift上運行。 它已經在domain1/lib中包含MySQL驅動程序。該檔案還包含我們需要的啓動和停止掛鉤。

  • 在應用程序頁面選擇做它自己動手,DIY,墨盒enter image description here

  • 填充它下面的圖片,如圖所示。你應該選擇你的應用程序名稱和你的域名。

    enter image description here

  • 您將需要OpenShift Client Tools


配置

  • 一旦應用程序創建克隆它在本地機器上說 rhc git-clone diyapp並將glassfish4目錄(整個目錄,不僅僅是其內容)移動到diyapp/diy。 將啓動和停止鉤子移到yourapp/.openshift/action_hooks中並檢查並確保它們是可執行的。 chmod +x start stop

. ├── glassfish4 │   ├── bin │   ├── glassfish │   ├── javadb │   ├── mq │   └── pkg ├── README.md ├── start └── stop

  • 現在,添加,提交和推你做回OpenShift的變化:

    cd diyapp git add . git status git commit -m "Added GlassFish" git push 推會導致應用程序重新啓動並執行可愛的新起點。


部署應用

  • 要部署的應用程序,只需它的戰爭複製到域1 /自動部署,並再次運行以前的命令來添加,提交和推送更改。 GlassFish將在啓動後自動部署您的應用程序。如果你覺得有什麼地方出了問題,用SSH登錄到你的應用程序,並尋找在autodeploy目錄一個your.war_deployed文件:

    rhc app ssh diyapp cd $OPENSHIFT_REPO_DIR/ cd diy/glassfish4/glassfish/domains/domain1/autodeploy/ ls

如果沒有這樣的文件,看看服務器日誌,找出了問題:

cd ../logs/ cat server.log | tail -n100


建立JDBC resourc es,連接池

  • 將MySQL盒式磁帶添加到您的應用程序。

  • 您不能在OpenShift中使用GlassFish管理控制檯。 glassfish-resources.xml似乎也不被支持。

在本地GlassFish服務器上設置所需的資源。 查看該服務器的domain.xml以查看所做的更改。 對yourapp中的domain1/config/domain.xml進行相同的更改。

這是我加入

`<jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="SamplePool" res-type="javax.sql.DataSource"> 
    <property name="User" value="adminvcsHiYw"></property> 
    <property name="DatabaseName" value="timetable"></property> 
    <property name="serverName" value="127.8.28.2"></property> 
    <property name="PortNumber" value="3306"></property> 
    <property name="URL" value="jdbc:mysql://127.8.28.2:3306/timetable"></property> 
    <property name="Password" value="_R-LrpYIcdUf"></property> 
</jdbc-connection-pool> 

` 因此數據庫名稱是您要添加MySQL的墨盒。端口名稱是MYSQL的端口名稱,創建MYSQL cartidge後將提供用戶名和密碼。

  • 在您的應用程序現在到處都寄予通過本地主機的
    OPENSHIFT_MYSQL_DB_HOST=127.9.226.130值替換它。

找出價值,ssh到你的應用程序和寫命令:

`env | grep MYSQL` 

像往常一樣:添加,提交和推送更改。

  • 就是這樣你就完成了。

References