質問

IntraWEBアプリケーションを使用して、データベース接続(私の場合のFirebird)に関する情報を検索しています。

特に、Tdatamodule上のデータベースをLockDatamodule関数で使用すること、またはusersessionUnitでデータベースを使用することに伴う違いを知る必要があります。たとえば、ユーザーがサーバーを使用していない場合、最大30人のユーザーが接続されている場合、データベースを完全に切断する必要があります。

最悪の場合、古いパラドックスデータベースに接続する必要があり、それを処理できる構造が必要です(セッションを処理するためにWebApplication.Appidに基づいてフォルダーを生成する必要があることはわかっています)。最悪の場合...

情報や便利なリンクを前もって私に提供できる^^

役に立ちましたか?

解決

シナリオ1-あなたは「プールデータ接続」を残します チェックされていない IntraWebアプリケーションウィザード

このシナリオでは、ウィザードが作成します ServerController, 、a UserSession しかし、ではありません DataModule. 。データベース、セッション、データセットコンポーネントをに配置します UserSession.

新しいユーザーがあなたのウェブサイトに接続するたびに新しいインスタンス UserSession 作成され、データベースへの接続が作成されます。いつ ServerController.SessionTimeOut ユーザーの不活性のために期限切れになります UserSession 破壊され、データベースへの特定の接続が切断されます。

30人の同時ユーザーの場合、このモデルはおそらくあなたにとって問題なく、ウェブサイトが使用されていないときにすべてのデータベース接続が切断されることを保証する必要があります。

シナリオ2-あなた 小切手 IntraWebアプリケーションウィザードの「プールデータ接続」

と同様に ServerController そしてその UserSession ウィザードは空のものを作成します DataModule. 。データベース、セッション、データセットコンポーネントをに配置します DataModule.

ServerModule があります TIWDataModulePool 持っているコンポーネント PoolCount 財産。

アプリケーションが開始されると、作成されます PoolCount のインスタンス DataModule それぞれがデータベースに接続します。あなたのページがデータベースアクセスを必要とするため、彼らは呼び出します LockDataModuleUnlockDataModule の1つを一時的に使用するには DataModule プールからのインスタンス。

アプリケーションが閉じるとき DataModule プール内のインスタンスが破壊され、データベースへの接続が閉じられます。

このモデルは、ユーザーごとにオープンデータベース接続を持つことで、データベースサーバーの機能を超える場合に適切です。 Firebirdデータベースに接続している30人のユーザーの場合、私はそれが必要だとは思わない。

他のヒント

KBMMWのようなコンポーネントセットの使用を検討することをお勧めします http://www.components4programmers.com/ 私はこれを何年もの間、デスクトップアプリANSでIWアプリを使用して使用しています。私は自分のアプリをサービスとして展開し、現在ISAPIとして展開するいくつかの問題を抱えています。 KBMMWは、接続プーリングなどを提供するため、多くの接続を備えたアプリに適しています。多くの機能と利点があります。あなた自身のためにサイトをチェックしてください。

私はエンタープライズバージョンを使用していますが、無料版はあなたに役立つかもしれません。

乾杯!

- ロウ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top