it's ruby...it's java...no, it's jruby
Embed Size (px)
TRANSCRIPT

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
• WarblerWarbler is a gem that makes a .war file out of a Rails, Merb, or Rack-based application.
http://kenai.com/projects/warbler

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
http://guides.rubyonrails.org/getting_started.html
• 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 -
XX:PermSize=128m
• Tomcat ConnectorTomcat Connector maxThreads="1024" minSpareThreads="32" maxSpareThreads="128"
enableLookups="false"
• 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

ReferenceReference
• http://jruby.org• http://rubyonrails.org/• http://kenai.com/projects/jruby/
• Practical JRuby on Rails Web 2.0 Projects• JRuby Cookbook

Q & A
