2012-05-05 10 views
3

DataMapperを使用すると、子供をフォークするプロセスで、DB接続が親でまだ開かれている(使用されている)ため、パケットの破損が発生します。私は切断を強制して、フォーク時に行うはずのように再接続したいが、DataMapperはこのユースケースを考慮したようには見えない。フォークする前にDataMapper(DataObjectsアダプタ)から強制的に切断しますか?

今私はプライベートAPIを経由し、それは間違って感じているので、これを行うためにプーリング内部との接続について少し把握する必要がありましたよ:

DataMapper.repository(:default).adapter.send(:open_connection).dispose 

があるかどう誰もが知っていますこれを行うための「公開」と正しい方法私はIRCチャンネルで尋ねたが、誰も反応しなかった。

答えて

2

the solutionは、別の質問で提示されました。

# Disconnects an existing DataMapper Session 
def disconnect! 
    DataObjects::Pooling.pools.each do |pool| 
    pool.dispose 
    end 
end 
関連する問題