とらぶるしゅーてぃんぐ

2010.01.11 21:38:28

11月より発生していたhetemlの不具合。
不具合の内容は・・・
 ・正常にFTP通信でファイル転送が出来ない
 ・FTP転送が正常に終了しても、しばらく経つとファイルが消える
この2つの症状に対していい加減ブチ切れそうになってきた・・・。
もう我慢できなくなり問い合わせをした。

原因はどうやらFTP通信の際に、セッションが2重に張られてしまうことによるものだった。
イメージとしてはこんな感じ。
 1.FTPツールでサーバにアクセス
  その際にセッションが2つ張られる。
  セッションA、セッションB
 2.ファイルa をアップロード
  2つのセッションでアップロードを開始。
 3.不具合発生
  セッションAでは、ファイルのアップロードは成功。
  セッションBで、アップロード処理がタイムアウト。
  (セッションAの処理でファイルが置かれ、ファイル重複のため
   処理が異常終了?or タイムアウト?)
 4.結果、転送処理が異常終了。

なぜセッションが2重に張られてしまうのか分からず。
(さすがにここはサーバでは分からない)
う〜む。回線の問題かねぇ。

そんなわけで、サーバ側で処置できることをして貰い、結果として
不具合は発生しなくなった。
でもなんかまだ怖いなぁ(;谷)
 
 
=heteml の MySQL でトランザクションをする為に=
heteml の MySQL はデフォルトのストレージエンジン MyISAM である。
そのため、明示的にエンジンを指定しないとトランザクションは使えない。

テーブルを作成する時に以下の方法でエンジンを指定することで、トランザクションを
扱えるようになる。 
 例:
  CREATE TABLE TBL_NAME (…) ENGINE = InnoDB
  or
  CREATE TABLE TBL_NAME (…) TYPE = InnoDB

既存のテーブルに対しては以下の方法で可能。
 例:
  ALTER TABLE TABLE_NAME ENGINE = InnoDB
  or
  ALTER TABLE TABLE_NAME TYPE = InnoDB

あぁ〜そうか、過去に扱えなかったのはこのせいか・・・w

Leave a Reply