2017/9/28

DB2連線錯誤 ERRORCODE=-4499, SQLSTATE=08001


  • 參考網址
  • Check the DB2 listening port
    • 尋找db2服务名称
      • db2 get database manager configuration
      • 查看  TCP/IP Service name   (SVCENAME) [服務名稱]
    • 查看TCP/IP服务名称和/etc/services中定义的db2服务名称是否匹配
      • nano /etc/services
      • 找尋[服務名稱]
      • 取得 port

2017/9/14

用 Annotaion完成web service (server端)


  • 開啟eclipse 新建一個web專案
  • 新增package與class
    • server1  :  提共可呼叫的功能
    • startServer : 啟動web service用
  • 在web.xml設定啟用tomcat時需實作的class
  • 建立web service功能
    • 提共一個加法功能

  • 註冊與發布web service功能 
    • 註冊與發佈 wsdl url
  • 啟動tomcat , 進入browser查看wsdl
    • http://localhost:1234/cal?wsdl
  • 下載並開啟soupUI 工具進行測試
    • 新增專案 , 填入http://localhost:1234/cal?wsdl
    • arg0填入11111
    • arg1填入22222
    • 送出結果得到33333


2017/9/13

DB2 table被鎖住


  • 參考網址
  • 某日發生表被鎖住的問題 , error如下但非絕對
    • Exception = com.ibm.db2.jcc.am.SqlTimeoutException: DB2 SQL Error: SQLCODE=-952, SQLSTATE=57014, SQLERRMC=null, 
  • 步骤一:使用命令get snapshot来查询哪些进程锁了哪些表。命令如下
    • db2 get snapshot for locks on databasename
  • 步骤二:使用命令force来断开这些进行了死锁的进程来。命令如下:
    • db2 "force application (handle id)"
  • 步骤三: 使用命令list application查看是否已经断开了哪些进行了死锁的进程
    • db2 list applications




    2017/9/11

    Line bot - 放置java web專案至heroku (1)


    • 本篇目標按照Heroku官方文件說明放置 tomcat服務與java web專案至heroku上
      • 因line bot 在使用reply功能時 , 需要一個中介網址處理回覆內容 , 因此line bot會要求設定 webhook url , line就會將收到的使用者訊息送至此 url  , 接著開發者就可以自訂如何回覆使用者的訊息 , 在本篇使用 heroku網站來充當 webhook
    • 在開始之前 , 你應已經申請並建立line bot 帳號 (後續才會用到)
    • 如果希望line bot有push 送出訊息功能 , 請選用deveopler trial版本
      • reply api : 使用者->line bot->使用者
      • push api :  line bot->使用者




    • 至heroku官網申請帳號
    • 開起eclipse並建立一個maven web專案
      • 選用maven-archetype-webapp 幫我快速建立一個乾淨的maven web專案 , 並且compiler成功 , 可參考maven篇
      • 建立一個index.jsp放在webcontent , 內容寫上 hello david
      • 建立runtime tomcat 8.0 , 並且新增server並啟用看看是否成功
      • pom設置參考官方文件


    • 如果編譯無問題, 進行測試
      • mvn package
      • 在target 目錄下應會產生 
        • dependency/webapp-runner.jar
        • 與專案的war檔
      • 打開cmd , 並切換到專案目錄 , 執行指令便會啟動tomcat 與專案
        • java  -jar target/dependency/webapp-runner.jar  target/*.war
      • 打開瀏覽器 http://localhost:8080 , 查看是否啟動成功
    • 在eclipse專案根目錄新增一個Procfile檔案
        • 此檔案為heroku執行指令用
        • 檔案內容加上一行  參考網址
          • web: java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war
        • 這樣heroku就會依照Procfile指令啟動 tomcat 與 java web專案

    • 將專案與Procfile檔案完成以後  , 再來就是透過 git 將程式部屬上heroku
      • 在 heroku  官方網站 下載安裝檔 並且安裝 heroku和git
      • 安裝完畢後 , 開啟 cmd 切換到eclipse專案根目錄的位置 , 即 pom.xml 與 Procfile 同一層
        • cd  C:\xxxxxx
      • 登入heroku帳密
        • heroku login
      • 先為eclipse專案目錄建立git reposity , 並將程式commit
        • git init
        • git add .
        • git commit -m "my initial apps"
      • 在heroku建立一個專案並自行定義一個heroku合法的專案名稱linenotice-1
        • heroku create --app linenotice-1
      • 將本機程式放到heroku , heroku會偵測到程式語言是java , 並且自動為maven專案做 mvn package
        • git push heroku master
    • 啟動heroku專案 ,  會自動執行 Procfile裡的指令 , 即啟動tomcat與web專案
      • heroku open
    • 如果有錯誤 , 可以使用 heroku logs查看log
    • 查看瀏覽器結果
      • 本篇使用免費版 , 當閒置30分鐘無使用 , heroku會將專案關閉




    test2