弊社で作成して納品したバッチ処理システムがあります。
データベースにはMariaDBを使用しています。
で、実行するとなぜか以下のようにMySLQサーバへの接続エラーが出るとのこと。
エラーメッセージも送って頂いたのですが、
SQLSTATE[HY000] [2002]...
と出ているようです。
MySLQへの接続アカウントも間違っていません。
で、原因が分からずあたふたしていると、
納品先業者の情報システム部から
MariaDBのメモリ上限は1Mに設定してあり、
この上限値に引っ掛かってしまっていると連絡がありました。
先方のサーバへは直接アクセスできないので弊社では詳細を調べられないのですが、
具体的には以下のように設定してあるとのこと。
==========================
■my.cnf
max_allowed_packet 1M
==========================
MySQLサーバが1度に受け取ることができるパケット容量の設定みたいなのですが、
「max_allowed_packet」に設定してある上限に引っ掛かってエラーが出る場合には、
調べてみると以下のようなエラーメッセージが出るようです。
==================================================================================================
SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
==================================================================================================
以下のサイトも参考になります。
https://dev.mysql.com/doc/refman/5.6/ja/error-messages-server.html
実際に出ているエラーコードは「SQLSTATE[HY000] [2002]...」なので、
先方が言ってきていることが正しいのか分かりません。。。
う~ん、
先方のサーバには直接は入れないのでこれ以上の原因究明は難しいです。。。
因みに、
先方のステージング環境で事前にテストを行っているのですが、
問題なく動作しています。
本来はステージング環境と本番環境は同一の環境を構築してあるはずなので、
・どうして本番環境では動作しないの!!
・御社の設定を変更(「max_allowed_packet」の上限を上げる)してください!!
と言ってやりたいところですが、
ここは我慢です。
相手はお客さんなんで!!
この記事へのコメントはありません。