No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Install this gem to use AS/400 with JRuby on Rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

< 5.0.0, >= 3.0.0
~> 1.5
>= 0

Runtime

 Project Readme

activerecord-jdbcas400-adapter

Gem Version Dependency Status Code Climate

https://github.com/pierrickrouxel/activerecord-jdbcas400-adapter/

Description

This is an ActiveRecord driver for AS/400 using JDBC running under JRuby.

Installation

Add this line to your application's Gemfile:

gem 'activerecord-jdbcas400-adapter'

And then execute:

$ bundle

Or install it yourself as:

$ gem install activerecord-jdbcas400-adapter

Usage

Configure your database.yml in the normal Rails style:

development:
  adapter: as400
  database: development
  username: user
  password: 1234

  naming: sql

  # This is possible only if naming=system and schema isn't defined
  libraries: lib1,lib2,lib3

You cas also use JNDI in production mode:

production:
  adapter: jndi # jdbc
  jndi: jdbc/dataSource

If your DB isn't correctly discovered you can specify the dialect:

  dialect: as400

To use native DB2 connection (directly on IBM i JVM only), you can add this to database.yml:

  native: true

This connection doesn't require credentials.

Transaction isolation: no commit

If your database supports setting the isolation level for a transaction, you can set it like so:

Post.transaction(isolation: :no_commit) do
  #...
end

Valid isolation levels are:

  :read_uncommitted
  :read_committed
  :repeatable_read
  :serializable
  :no_commit

Experimental features

Current library

To allow migrations with system naming, a configuration is added to adapter:

  current_library: lib

The specified library will be used to define a schema during create_table migration. It prevents creation of a table in QGPL.

If you want to use it with JNDI you can create a JNDI string and use erb in yaml to do something like this:

<%
require 'java'
current_library = Java::JavaxNaming::InitialContext.new.lookup('java:comp/env/currentLibrary').to_s if Rails.env.production?
%>

production:
  adapter: as400
  jndi: jdbc/dataSource
  current_library: <%=current_library%>

Compatibility

Actually activerecord-jdbcas400-adapter is only compatible with IBM i V6R1 and later versions. It requires JDBC 4.0 driver and Java 6.

Dependency

You can embed the JTOpen driver in your application. It is distributed in a separate gem : 'jdbc-as400'