it's's, it's jruby

DigitalSonic Oct. 2009 It’s a Bird… It’s a Plane… No, it’s Superman

Upload: digitalsonic

Post on 20-Aug-2015




4 download


DigitalSonicOct. 2009

It’s a Bird…

It’s a Plane…

No, it’s Superman

It’s a Bird…

It’s a Plane…

No, it’s Superman

How many Rails developers How many Rails developers have Java knowledge?have Java knowledge?

• The Best of JVMThe Best of JVM

• It’s Just RubyIt’s Just Ruby

• Platform IndependentPlatform Independent

Have a TryHave a Try

• Download the latest JRuby distribution• Unpack• Add the bin path to $PATH or %PATH%• Test it

jruby –vjirbjirb_swing

Ruby => JRubyRuby => JRuby

• ruby jruby• C backend libraries Java backend libraries• …

• gem jruby –S gem• rake jruby –S rake• rails jruby –S rails

Ruby on Rails => JRuby on RailsRuby on Rails => JRuby on Rails

adapter: mysqlmongrelRMagick…

adapter: jdbcmysqlmongrel-jrubyRMagick4J…

Both Both RailsRails and and Java EE Java EE projects are projects are running in the running in the samesame Java AS? Java AS?


• WarblerWarbler is a gem that makes a .war file out of a Rails, Merb, or Rack-based application.

Rails in Java ASRails in Java AS

• Tomcat• Jetty (jetty-rails)• Glassfish v2 / v3 (gem)• JBoss (JBoss-Rails)• …

Rails in Java AS (cont.)Rails in Java AS (cont.)

• Larger JVM Memory Size• Server JVM• Latest JDK• Sun JDK / BEA JRockit ?

• Connection Pool• Load-Balance

Showcase: BlogShowcase: Blog• Getting Started with Rails

• Step by StepStep by Stepjruby -S rails blogModify database settingsjruby -S warble configModify config/warble.rbjruby -S warble warDeploy into Tomcat

Showcase: Blog (cont.)Showcase: Blog (cont.)

Showcase: MonitorShowcase: Monitor

• Tomcat Monitor ToolsPSI Probe (Lambda Probe)Hyperic HQ

• VM Monitor ToolsJConsoleVisualVMJRockit Mission Control

Showcase: Monitor (cont.)Showcase: Monitor (cont.)

Showcase: Monitor (cont.)Showcase: Monitor (cont.)

Showcase: Simple TuningShowcase: Simple Tuning

• VMVM -Xmx768m -Xms768m -Xmn256m -XX:MaxPermSize=128m -


• Tomcat ConnectorTomcat Connector maxThreads="1024" minSpareThreads="32" maxSpareThreads="128"


• JNDI Connection PoolJNDI Connection Pool

For my laptop only, not for production environment Some parameters are set without measurement

Showcase: Simple Tuning (cont.)Showcase: Simple Tuning (cont.)

Ubuntu 8.10, kernel 2.6.27-14-genericJDK 1.6.0 Update 10JRuby 1.3.1Apache Tomcat 6.0.20Mongrel 1.1.5

rails 2.2.2activerecord-jdbc-adapter 0.9.2jdbc-mysql 5.0.4warbler 0.9.14



• Practical JRuby on Rails Web 2.0 Projects• JRuby Cookbook

Q & A