1

crontab を使用して、毎日いくつかのプログラムを自動的に実行しています。7日前から、プログラムの1つを自動的に(毎日午前3時に)実行して、データベースのテーブルに文字列(数字と英語と英語以外の文字を含む)を挿入すると、数字と英語の文字(ASCII文字)のみが挿入されますデータベースですが、それ以前は正常に機能していました。しかし、自分でプログラムを実行すると、他の文字もテーブルに挿入されます。

一方、午前2時にcrontabを使用して別のプログラムを実行すると、同じデータベース(ただし異なるテーブル)にいくつかの文字列が挿入されますが、正常に動作し、すべての文字(英語と英語以外)がデータベースに挿入されます。

サーバー OS は最小の centOS 6.3 で、MySql Database 5.1.61 を使用しています。データベースの照合順序は utf8-utf8_general_csi です。両方のプログラムで、Java とその jdbc ライブラリを使用しています。

私はcrontabでのみ疑われています。どんな助けにも感謝します。

編集:
これが私が作ったcrontabです:

0 2 * * * java -jar file.jar arg1 arg2 arg3
4 15 * * * java -jar file3.jar arg1 arg2 args3
0 3 * * * java -jar file2.jar arg1 arg2 arg3

.2 at 3 で実行されるプログラムは、同じ機能を持っています。ただし、3 (file2.jar) のファイルを実行すると、英語以外の文字は挿入されません。

そして、ここに私がDBに挿入するコードの一部があります:

stmt = (Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE) ;
            stmt.executeUpdate("set character_set_results=utf8"); 
            stmt.executeUpdate("set character_set_filesystem=utf8");
   try
   {
       rs.moveToInsertRow();
       rs.updateString("f1", str1);
       rs.updateString("f2", str2);
       rs.updateFloat("f3", fl1));

       rs.insertRow();

   }
   catch(Exception ex)
   {
   }
4

1 に答える 1