終結

 メインの仕事は社内から来るOracleに関する質問に答えるサポートだったりします。
 最近来た質問は、Oracleの.NET環境からデータベースに接続するOracle Data Provider for .NET(通称ODP.NET)がメモリリークをして困る、というもの。
 
 当然、私の分からない質問もよく飛んできます。というか、調べなければ分からないような質問の方が殆どです。WebやOracleのマニュアルを見ても分からないものもあるので、そういう場合はOracleの質問窓口に投げます。
 
 ところが、Oracle側はメモリリークなんかない、あるなら証拠を見せてくれ、と一点張り。社内側はOracleのライブラリがメモリリークを引き起こしてる、グラフを送るから見てくれ、といつまでたっても平行線。
 
 もうこんなのを2週間近くやってます。orz
 私が見ても、確かにメモリリークはしてると思うんだけど、向こうでは再現してないらしいしなぁ……、うーん分からん。
 
 ところが、今日自分でサンプルプログラムを組んでみたらメモリリークが発生しなかったので、違いは何だろうと、二つのプログラムを書き換えては比較し……を繰り返していると、どうやらmainメソッドの上に書いてある[STAThread]という記述があるか、無いかでメモリリークが発生している模様。
 
 ということは……このバグ、社内でもOracleでもなくて……。
 
 マイクロソフトのバグか!!
 
 というわけで、丁度後ろの席に当たるマイクロソフト関係サポートチームに相談してみて、調べてもらった結果、類似した報告がいくつか見つかった。パッチらしきもの(確証は無い)も貰ったので、明日試してみる予定。
 
 でも、私は一応Oracleサポート……なんだけどなぁ……。
 調べてると最終的に全然違うところに問題があった、なんてことが良くあってヤレヤレって感じです。