タグ

Tomcatに関するgologo13のブックマーク (31)

  • AWSでセッションをクラスタリングする方法について考えてみた結果、DynamoDBがよさそうなので試してみた。 - Qiita

    AWSでセッションをクラスタリングする方法について考えてみた結果、DynamoDBがよさそうなので試してみた。JavaTomcatDynamoDBSpringBoot はじめに EC2上のtomcatにデプロイされたウェブアプリケーションのセッション情報をどうやって永続化するかを考えてまずはそれをまとめてみました。 次に、DynamoDBAWSが提供しているTomcatSessionManagerを使ってSpringBootからDynamoDBにセッションを永続化する方法をご紹介します。 SpringBoot内ではEmbeddedTomcatを使っており初期化処理時にSessionManagerを差し替えれば実現できます。EmbeddedではないTomcat上のウェブアプリケーションであればcontext.xmlに設定を書けば実現することができます。後者についてはあっさり触れたいと思いま

    AWSでセッションをクラスタリングする方法について考えてみた結果、DynamoDBがよさそうなので試してみた。 - Qiita
    gologo13
    gologo13 2017/06/27
    DynamoDB Tomcat Session Manager
  • Tomcatをツールで運用し、設定の基礎を知る

    server.xmlを書いてTomcatを設定してみよう それでは、実際に紹介したタグを設定してserver.xmlを書いていきましょう。 コンテキスト全体に関する属性を設定する<Server>タグ server.xmlを書いていくに当たり、まずはこれらの中でトップレベルに来る要素の<Server>を書く必要があります。<Serverタグ>では、このコンテキスト全体に関する属性を設定できます。 要素 内容 className

    Tomcatをツールで運用し、設定の基礎を知る
  • Apache2.4.6とTomcat8.0.32の連携設定 - bnote

    ApacheをフロントエンドとしてTomcatと連携出来るよう設定を行います。 環境 設定する環境は、次の環境で確認しています。 CentOS7(64bit) Apache 2.4.6 Tomcat 8.0.32 Apacheのインストールについては、「CentOS7へApache2.4.6をインストールする」にまとめてあります。 また、Tomcatのインストールについては、「CentOS7へTomcat8.0.32をインストールする」にまとめてあります。 Apache 2.4.6とTomcat 8.0.32の設定 Tomcatには、HTTPサーバーとしての機能も持っていますがHTTPリクエストはApacheが受けTomcatで処理された結果をApacheが返すように設定します。 ApacheとTomcatの間は、mod_proxy_ajpモジュールによって受け渡しが行われます。 Apac

    gologo13
    gologo13 2017/05/30
    AJP 連携設定
  • Webアプリの問題点を「見える化」する7つ道具

    Webアプリの問題点を「見える化」する7つ道具:現場から学ぶWebアプリ開発のトラブルハック(1)(3/3 ページ) その6:プロファイラ プロファイラとは、実行中のプログラムの動作を分析するツールである。メソッドの処理時間や呼び出し関係を統計情報として提供するメソッドプロファイラと、メソッドから生成されたオブジェクトの数やサイズ、世代情報を提供するオブジェクトプロファイラの2つが存在する。 ■使いどころ メソッドプロファイラは、HWリソースモニタリングツールでAPサーバのCPUがボトルネックになっているときに有効である。また、スレッドダンプ解析で問題が発見できなかった場合に使用する。 一方、オブジェクトプロファイラは、OutOfMemoryエラーが発生しているときや、GCログ分析でヒープ使用量が右肩上がりになっているときに、巨大なオブジェクトや無駄なオブジェクト生成をしているコードを発見

    Webアプリの問題点を「見える化」する7つ道具
  • 「Tomcat」アイドル状態のコネクションについて - プログラム日記

    Tomcat ( Commons DBCP ですが ) で、プール内に一定時間以上アイドル状態で存在し続けたコネクションを切断するパラメータ timeBetweenEvictionRunsMillis、numTestsPerEvictionRun、minEvictableIdleTimeMillis 辺りについてのメモ ( 何度か調べてはいるのですがいつも忘れちゃうので。ドキュメントみれば直ぐわかりますが毎回調べる時間がもったいない )。 ドキュメントは、以下になります。 ・DBCP - Configuration http://commons.apache.org/proper/commons-dbcp/configuration.html ※ 余談ですが Tomcat 6.0 系だど Commons DBCP 1.3、Tomcat 7.0 系だと Commons DBCP 1.4 みた

    「Tomcat」アイドル状態のコネクションについて - プログラム日記
  • 【トラブル大捜査線】失われたコネクションを追え!

    【トラブル大捜査線】失われたコネクションを追え!:現場から学ぶWebアプリ開発のトラブルハック(7)(3/3 ページ) 【最終話】それが、トラブルシューティング屋の務め クローズ漏れの個所も大体の見当が付いたので、アプリケーション開発チームに確認・修正を依頼した。 アプリケーションが直るまでの間、removeAbandonedを付けたままで負荷試験を継続することにした。目的はremoveAbandonedのオーバヘッドを測定することである。logAbandonedを指定しなければstackTraceは生成されない。そのため、ある程度の性能は出るように思われた。 ■removeAbandonedの同期化 しかし、実際に測定してみたところ、思ったように性能は出なかった。CPUがほとんど使い切れなかったのだ。 ここまできたら、ついでに解析してしまうのが、トラブルシューティング屋の務めだろう。負荷

    【トラブル大捜査線】失われたコネクションを追え!
    gologo13
    gologo13 2017/03/24
    DBCP の設定についてわかりやすい / “removeAbandonedは本番環境で使用することは避けた方がよいだろう。”
  • 【トラブル大捜査線】失われたコネクションを追え!

    【第3話】Tomcatの持つコネクションプール「DBCP」 ■netstatコマンドによる確認 あるプログラムがソケットを使用してほかのプログラムと通信している場合、netstatコマンドを使用してソケットの状態を確認するといろいろなことが分かる。 早速、netstatでDBコネクションの状態を見てみると、確立済み(ESTABLISHED)状態のコネクションが、DBCPに設定している最大コネクション数と同じ数だけ存在した。Tomcatの設定を確認してみると、DBCPの最大コネクション数はTomcatの最大スレッド数と同じ値に設定してあった。つまり、スレッドが同時に複数のコネクションを使用しない限りコネクションが不足することはない。 ■リーダー「同時に1つのコネクションしか使わないはず」 アプリケーション開発のリーダーに確認したところ、「アプリケーションは同時に1つのコネクションしか使わない

    【トラブル大捜査線】失われたコネクションを追え!
    gologo13
    gologo13 2017/03/24
    connection pool, コネクションプール
  • mod_proxy_httpとmod_proxy_ajpとmod_jk — ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

  • Apache-Tomcat連携におけるAJP – OpenGroove

    Apache-Tomcat連携において、一般的に静的コンテンツはApacheに処理をさせ、 動的コンテンツはTomcatへ転送する仕組みをつくるもの、と思われる。 例えば以下のような。 1.Webサーバは受け取ったリクエストが設定したURLパターンに合致する場合、 そのリクエストを連携モジュールに渡す。 2.連携モジュールは連携プロトコルを使用し、そのリクエストを連携コネクタに渡す。 3.連携コネクタはリクエストをJSP/サーブレットコンテナに渡し、そこで処理が実行される。 ApacheとTomcatが通信するための仕組みとして、AJPコネクタという機能がある。 上記の転送の仕組みのうち、連携プロトコルがAJPプロトコル、連携コネクタが AJPコネクタにあたる、と考えてよいのだろう。 通常Tomcatが利用するポートは8080だが、AJPコネクタを利用する通信においては 8009ポートを使

  • Should one call .close() on HttpServletResponse.getOutputStream()/.getWriter()?

    In Java Servlets, one can access the response body via response.getOutputStream() or response.getWriter(). Should one call .close() on this OutputStream after it has been written to? On the one hand, there is the Blochian exhortation to always close OutputStreams. On the other hand, I don't think that in this case there is an underlying resource that needs to be closed. The opening/closing of sock

    Should one call .close() on HttpServletResponse.getOutputStream()/.getWriter()?
  • Welcome to m-bsys.com

  • OpenAMによる認証環境の構築 - Qiita

    ここでは、OpenAM(旧SSO)を使用した認証システムの構築について紹介していきます。使用したのはOpenAM12.0.0ですが、OpenAM13.0.0(現在目下開発中)においても使えるはずです。尚、ここで前提とする認証方式はエージェント方式とします。(他に、リバースプロキシやトークンなどあります) 事前準備 簡単な用語の説明 OpenAMで重要な用語を私の理解で説明します。 認証サーバ:認証を実施するサーバ エージェント:認証を実施したいアプリと同じサーバなどに入れ、認証サーバとの連携をする存在 エージェントプロファイル:エージェントが認証サーバとの間でやり取りをすべきかの設定を記載したもの ポリシー:認証サーバがどのように認証すべきか(認証を実施するURL、認証時に認可するユーザやグループの判別など)を決めたもの ダウンロード 今回の設定に必要なソフトウェアをダウンロードします。

    OpenAMによる認証環境の構築 - Qiita
  • OpenAM(旧OpenSSO)でシングルサインオンをしてみる - sinsengumi血風録

    やりたいことは、クロスドメイン(CDSSO)でシングルサインオンを実現し、ユーザーを識別(認可)して、アクセスできるURLを制限したい、というもの。 SSO製品は色々あるようですが、一番とっつきやすそうなOpenAMで試す。 SSOエージェントなど、独特のSSO用語は以下のページがとてもわかり易いです。 http://dev.ariel-networks.com/column/tech/opensso/ 前提 SSOサーバーとSSOエージェントは別マシン(同じマシンで実行した(もちろんポートを変えて)が上手くいかなかった為) SSOサーバーのホスト(10.29.56.64) : sso.server.com SSOエージェントのホスト(10.29.55.56) : sso.agent.com SSOはCookieを用いて、SSO Tokenをやり取りするので、localhostなどでアクセ

  • Tomcat JDBC Connection Poolの存在を忘れてました - Qiita

    はじめに 少し前まで業務でSeasar2 FWを使っていたためコネクションプールはSeasar2のものを利用していました。S2のコネクションプールの実装はシンプルだったし業務で利用していても特にそこがボトルネックになることはありませんでした。 別のプロジェクトに移ってDBCPを触っていたのですが、実装になんとなく疑問を感じたので調べてみました。 tomcat jdbc connection poolとは? tomcatで実装したConnectionPoolの実装です。(DBCPとは異なります。) tomcat 7.0.19から利用できます。 tomat-jdbc.jarに含まれています。 DBCPからの切り替えはfactoryを変更するだけです。 tomcatのdefaultではDBCPが選択されていますので明示的に変更が必要です。 どこに違いがあるのか。 パフォーマンス DBCPよりパフ

    Tomcat JDBC Connection Poolの存在を忘れてました - Qiita
  • Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録

    「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployment という機能が追加され、同一 Web アプリの複数バージョンを同時にデプロイができるようになった。 war のファイル名を somewebapp##001.war 等にしておくことで、 - $CATALINA_BASE/ - webapps/ - somewebapp##001.war - somewebapp##002.warのように配備をすると、 http://localhost:8080/somewebapp/ でアクセスした場合に、セッションが継続している場合には古い方(

    gologo13
    gologo13 2016/08/04
    Parallel Deployment = 同一Webアプリの複数バージョンを同時にデプロイができる。セッションを元に新旧のアプリに振り分ける。
  • Java/ServletとJSESSIONIDのURL管理 - Glamenv-Septzen.net

    Servlet 2.5 今回主に取り上げるTomcat6, Jetty7で対応しているServlet 2.5の仕様を確認すると、"SRV.7.1 Session Tracking Mechanisms"で以下のように記されています。 SRV.7.1.1 Cookies Session tracking through HTTP cookies is the most used session tracking mechanism and is required to be supported by all servlet containers. The container sends a cookie to the client. The client will then return the cookie on each subsequent request to the server,

    gologo13
    gologo13 2016/07/19
    サーブレットコンテナによるセッション管理
  • TomcatやJBossでHTTPリクエスト単位で並行実行数を制限するサーブレットフィルタ - nekop's blog

    WebLogicからの移行とかで、HTTPリクエスト単位で流量制御などの目的で並行実行数を制限したいという要望がたまにある。WebLogicではWork Managerというのがあって、これがHTTPリクエスト単位での設定なのだそうだ。 TomcatやJBossではApache httpdのMaxClientsと同じく、リクエスト単位ではなくクライアント単位(ソケット単位)でスレッドを割り当てる。このモデルでは、例えばmaxThreads="20"とかにしたら常に同時に20個のリクエストをさばいてくれる、という仮定は成り立たない。クライアントがkeep aliveで接続している間はスレッドも待ち続けるので、21番目のリクエストは先に接続した20のクライアントがkeep aliveを終了してコネクションを切断するまで処理されない。MaxClientsは名前の通りMaxClientsなのであっ

    TomcatやJBossでHTTPリクエスト単位で並行実行数を制限するサーブレットフィルタ - nekop's blog
    gologo13
    gologo13 2016/06/27
    JavaEEサーバごとに独自実装になっている→Filterで実装するとポータビリティ高丸
  • 独自機能とポータビリティのジレンマ - nekop's blog

    JBoss / WildFly (全部俺) Advent Calendar 2013の18日目です。 Tomcat, Jetty, WildFly, GlassFish, Resin, WebSphere, WebLogic, Cosminexus, Interstage, WebOTXなどいろいろなJavaアプリケーションサーバがありますが、仕様に準拠するための機能の他に、それぞれ独自の機能を持っていたりします。JBossでも昨日紹介したsarのような独自の機能があります。 独自の機能を考えたときに、常につきまとうのがポータビリティの問題です。不用意な独自機能はポータビリティを阻害しますし、JBossはオープンソースでありポータビリティマターな信条の人が多いので当然これを嫌います。 他のアプリケーションサーバの独自機能の流量制御に依存している、デプロイメント機能にロックインされていて移行

    独自機能とポータビリティのジレンマ - nekop's blog
  • Tomcatの実装から学ぶクラスローダリーク #渋谷Java

    8. 第十回 #渋谷java Common クラスローダ Webapp クラスローダ ( 稼働中WAR) アンデプロイ済 Webapp クラスローダ ClassLoaderLeakの主な原因 Bootstrap クラスローダ System クラスローダ Tomcat スレッドプール 1. 上位クラスローダで読み込まれた クラスからの強参照 例 : java.sql.DriverManagerのフィールド変数 ⇒ WEB-INF/libのJDBCドライバ など 2. プール内スレッドからの参照 ・ スタック中スレッドが旧APクラスを参照 ・ ThredLocal.remove() の漏れ Tomcat8のデフォルトの クラスローダ階層 (クラスローダについては以下参照) org.apache.catalina.startup.Bootstrap.initメソッド と org.apache.c

    Tomcatの実装から学ぶクラスローダリーク #渋谷Java
  • TomcatでHTTPセッション単位のデータを扱う方法

    PHPなどのシングルスレッドのWebアプリケーションを長く開発していると、何も考えずにクラス変数を使ってしまう...。 Tomcatは、シングルスレッドの設定を行わない限り、マルチスレッドで動作する(あらかじめいくつか複数のスレッドを起動しておき、リクエスト毎にどれかを使うような感じ)のでクラス変数を使うと全てのスレッドからアクセスが共有されてしまいます。 これは、たとえば現在のHTTPセッション(セッション間データを扱う「セッション変数」ではなく、1セッション内という意味)のみで統一的に扱いたいデータをクラス変数に入れておくと、HTTPセッションが終了してもそのデータが保持されたままになってしまうということです。 クラス変数はプロセス内で共有される変数なので、Tomcat起動中は同じプロセスですから当然といえば当然なのですが...、例えばデータベースコネクションなんかは上記のような形で扱

    TomcatでHTTPセッション単位のデータを扱う方法