みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
クライアント:FileMaker Pro 13(Win)
サーバー:FileMaker Server 13(Win)
開発環境:FileMaker Pro 13 Advanced(Win)
上記環境にて来院受付の状況を表示するシステムを構築しております。
データベースへの入力はFileMaker Pro 13を使用し、状況の表示はWeb Direct(IE10)を使用しています。
状況表示にWeb Directを使用している理由は、別システムとの連携でIEを利用するしかない為です。
その際、Web Directで情報を表示する事に問題はないのですが、
データベースの情報に何も変更が無いと、アイドル状態となり、
セッションタイムアウトでサーバーから切断されてしまいます。
スクリプトタイマーを使用して一定時間置きにダミーデータを入れたり、
レイアウトの切替、ブラウザの自動リロード等を行ったのですが、効果はありませんでした。
Web Directを使用した際にデータの更新が無くても、セッションを維持し続ける方法はありませんでしょうか?
以上、よろしくお願い致します。
Offline
WebDirectの実物を試してないので、もしかしたらという程度です。
WebDirectがiframeでの表示を拒絶しないのであれば、
iframe内に表示しておき、JavaScriptでリロードさせてはいかがでしょうか。
setTimeout()等で定期的にリロードすれば、
恐らく目的の状態は保てると思います。
>honda様
早速のアドバイスありがとうございます。
ご教示頂いたiframeの件ですが、iframeの中にWebDirectのURLを明記して表示させ、location.reloadを試してみましたが、
やはりセッションタイムアウトが発生してしまいました。色々文献を探した所、FileMaker社のFM13 WebDirectガイドの26ページに、
「非アクティブなWebアカウントの接続解除」という節で、「Web ユーザがWeb ブラウザからリクエストの送信(検索、作成、変更の送信、レイアウトの変更など)を行わない場合、
セッションはアイドル状態と見なされます。」と明記があったので、ブラウザ上から何かしらイベントを起こさないとアイドル状態になってしまうのかもしれません。
なお本案件ですが、最終的にWebDirectでの表示は取りやめ、VNCを使用して画面表示を行う方法を取りました。
少々遠回りな気がしますが現状目的は達成できていますので、こちらで解決とさせて頂きます。
貴重なご意見を頂き、ありがとうございました。
Offline
VNCで解決済みですが、面白そうなのでもし試せたら。
-
1. location.reload(true)
location.reload()だとWebDirectのエンジンまで届いてないかもなので。
reload(true)でもだめなら、単なるGETはセッション維持の条件外?
ただ、ガイド読んでみると以下の記述があったんで、
古いセッション残したまま新たなセッション張るんで、すぐセッションの上限に達するかも。
> WebユーザがWebブラウザの[再読み込み]または[最新の情報に更新]ボタンをクリックした場合、
> FileMaker WebDirectはログアウトやOnWindowCloseまたはOnLastWindowCloseスクリプトトリガの有効化を行うことなく現在のセッションを離れます。
> その後、FileMakerServerへの新しい接続が作成され、OnFirstWindowOpenおよびOnWindowOpenスクリプトトリガが有効になります。
reloadの間隔をタイムアウト近くにしておけば、いけるかも知れません。
-
2. JSでイベントfire
WebDirectがどういうモデル採ってるか分かりませんが、
ダミーフィールドへの変更イベント発火させられれば、維持されそうです。
この辺までできると、他のトピックかどこかで挙がっていた、
クライアントでのアクションの度に発火するイベントがレスポンス悪いって問題も、
イベントフックして溜めといて任意のタイミングで発火、とか出来そうです。
JSでのハックは、標準で間口は用意されてないだろうから、
とりあえず自作ファイルをブックマークレットで読み込むのが無難そうです。
-
https://www.emic.co.jp/fmpress/publishe … webdirect/
上のエミックさんのドキュメント見る限りWebDirectは相当重そうなんで、
掲示主体なら、VNCなりのスクリーン転送が最適解なのかも。
>WebDirectがどういうモデル採ってるか
VAADINですね。(JavaソースからWEBアプリを生成する)
AdminConsoleも同じ。
Vaadin知らなかったんですが、GWTのようなもの?
と思ったら、最新のver.7からはコアをGWTに替えたとあるので、
6以下なら独自のGWT競合製品で、
7以降はサポート付きのモダンなGWTラッパっぽいんですかね。
スキーマの変更が結構自由なFileMakerで、
.fmp12 -> Vaadin -> Web を繰り返すんであれば、
それが言われてるような負荷の原因でしょうか。
ややこしめのレイアウトを2,3個一度に要求されると、ピークの負荷は高そうです。
AdminConsoleがクライアントでJava要らずにってのも、
このVaadinの採用によるんでしょうね。
ver.7のサンプルっぽいもの覗いて見る限り、
FileMaker社の独自実装されるよりはハックしやすそう。
イベントモデルとかがGWT互換なら、既存の資産活かせるかも。
[ Generated in 0.010 seconds, 7 queries executed - Memory usage: 519.88 KiB (Peak: 524.78 KiB) ]