InformixデータベースにODBC接続を行いました。 dbの負荷テストを実行しているときに、〜12Kの挿入クエリの後に「パーサ・スタックに十分なスペースがない」というエラーが発生します。制御フローである。ODBC接続を使用してInformixデータベースを照会しながらパーサースタックがいっぱいになる
- のSQLConnect
- SQLAllocStmt
- たSQLSetStmtAttr
- のSQLBindParameter
- のSQLPrepare
- のSQLExecute
- てSQLFreeStmt
- 繰り返しステップ2~7
したがって、新しいクエリハンドルはクエリごとに割り当てられ、クエリはすべて同じ接続で実行されます。正確なエラーステートメントは次のとおりです。
37000:[Informix][Informix ODBC Driver]General error. Not enough space for parser stacks
これは既知のエラーですか?私もメモリリークを見つけることができません。スタックのサイズを大きくすると、より多くの「挿入」クエリの後に同じ問題が発生する可能性があります。なにか提案を?
お使いのバージョンのClient SDKを表示して、お使いのOSと環境について詳しく教えてください。 –
この問題は、ヒープサイズが増えたとしても、遅かれ早かれ発生することがほぼ保証されています。問題のヒープがメインの 'malloc()'ヒープまたは同等のものであることはすぐには分かりません。 ODBCドライバ内の「パーサー」にローカライズされている可能性があります。それは、ドライバが文を解析しているように私に聞こえます。私はあなたがCSDKの最新バージョン(3.70.xC4が良いでしょう)にいることを確認し、そこに問題が発生した場合は、問題をIBMテクニカル・サポートに報告してください。 –