2009-08-07 15 views
1

フォームはIEで表示され、Oracle OASサーバー上で実行されるOracle 10gフォームアプリケーションがあります。アプリケーションの一部には、Oracleのwebutilユーティリティを使用して、PCからOASサーバーにファイル(主にWord文書およびPDF)をアップロードおよびダウンロードすることが含まれます。OASサーバーから大規模なファイルをPCにダウンロード

問題は大きなファイル(25Megs以上のファイル)で、長時間(時には数分)かかることがあります。大きなファイルであっても、アップロードはうまくいくようです。ただし、大きなファイルをダウンロードすると、ダウンロードの途中でエラーが発生します。

開発システムで189Megファイルをテストしました。 WEBUTIL_FILE_TRANSFER.Client_To_DB(またはClient_To_DB_with_Progress)を使用すると、約24Megs後にダウンロードがエラーになります。私はWEBUTIL_FILE_TRANSFER.URL_To_Client_With_Progressに切り替えて、最終的にファイル全体をダウンロードしましたが、22分かかりました。プログレスバーがないと18分になったが、それでもまだ長すぎる。

私はブラウザにファイルを表示することができ、約5秒で私のテストファイルが表示されますが、編集のためにダウンロードしてから再アップロードする必要があります。

このアップロードとダウンロードをより速く達成する方法についてのご意見はありますか?この時点で、私はwebutilを使っているかどうかにかかわらず、ほとんどのアイデアを公開しています。少なくともオラクルに固有のソリューションが好まれますが、私は提案に答えています。

おかげで、 AndyDan

+0

OASでウェブキャッシュが使用されていますか? –

+0

はい、そうです。私はそれが何を意味するかは分かりません。 – AndyDan

+0

webcacheを使用しているoas経由でフォームにアクセスするときに、webutil関数のパフォーマンスに問題があるようです(ただし、あなたが言及したものではありません)。メタルリンクへのアクセス権を持っている場合:330852.1 さらに、メタルリンクの注記もご覧ください。443405.1 Oracle Formsと組み合わせてWebキャッシュを使用するパフォーマンスの低下 私はwebutilを使用してそのようなものをダウンロードしていません大きなファイルなので、私は野生のガチョウの追跡にあなたを送っているかもしれませんが、私はそれが使用されていない環境でそれを試す価値があると思います。 –

答えて

0

CLIENT_HOSTを使用してFTPコマンドを呼び出してファイルをダウンロードしました。私の189MBのテストファイルは、WEBUTIL_FILE_TRANSFER.URL_To_Client_With_Progressを使用してダウンロードするのに20-22分かかり、FTPを使用して約20秒しかかかりませんでした。 FTPパスワードはPCに一時的に公開されているため、ダウンロードが行われている間だけ有効です。その場合でも、ユーザーはそのパスワードを見つける場所を知る必要があります。

私たちは今のところこれを実装しており、より安全ではあるが長期的な解決策を模索しています。

0

これは完全にランチに不足している可能性がありますが、あなたが役立つかもしれない任意の考えを探していることから、ここでは鉱山があります。

まず、ファイルの実際の編集がブラウザ外で行われ、ファイルを前後に取得するためのより良い方法を探していると仮定しています。

この場合、過去に私が使用していたオプションの1つは、Apacheや好きなバニラWebサーバを使ってWebアプリケーションを回ることです。ダウンロードするには、一意のファイルセッショントークンを作成し、Webアプリケーションでそのトークンを覚えておいて、トークンで指定されたファイルのコピー(例えば、ユニークトークン>.doc)をApacheに見えるダウンロードディレクトリに置きます。その後、Apache経由で提供されるファイルへのリンクを提供します。

アップロードには、いくつかのオプションがあります。 1つは、あなたが持っているメカニズムを使用することです、そして、ファイルがアップロードされるとき、ファイルをあなたのアーカイブに戻すために、名前のトークンにマッチさせるだけです。あるいは、アプリケーションとは別に非常に単純なファイルアップロードフォームを作成して、ファイルをApache経由で一時ディレクトリにアップロードし、ユーザーをアプリケーションに戻して、URL HTTP GETスタイルまたはその他の形式でトークンを提供することもできますクッキー。

問題が発生する前に、バニラWebサーバーが現在のソリューションよりもアップロードとダウンロードの速度と信頼性が向上していることを確認する必要があります。

私は、使用しているアプリケーションサーバーがHTTP圧縮を提供しているかどうかはわかりませんが、有効になっていることを確認してください。これはおそらく、大容量ファイルがかなり圧縮可能であると仮定して、大容量ファイルの転送速度を上げるために行うことができる最良の方法です。アプリケーションサーバーがそれをサポートしていない場合、ほとんどのバニラWebサーバーがサポートします。

私は役立つことを願っています。

+0

再設計の量はまったく最後の手段になりますが、アイデアのおかげです。私は、HTTP圧縮を調べて、有効になっていることを確認しています。知らせます。 – AndyDan

関連する問題