[Java] JSR 269 Maintenance Review for Java SE 9

原文はこちら。
https://blogs.oracle.com/darcy/entry/jsr_269_mr_java_se

Java SE 7、Java SE 8の時にもあったように、Java SE 9において、JSR 269(Annotation Processing API)はメンテナンスレビュー(Maintenance Review、MR)が進んでいます。
JSR 269 Maintenance Review
https://blogs.oracle.com/darcy/entry/jsr_269_maintenance_review
JSR 269 Maintenance Review for Java SE 8
https://blogs.oracle.com/darcy/entry/jsr_269_mr_for_java
JSR 269: Pluggable Annotation Processing API
https://jcp.org/en/jsr/detail?id=269
javax.lang.model.*における言語構造としてだけでなく、Filerなどにおけるjavax.annotation.processingでの別のインタラクション・ポイントとしても、API変更のほとんどはプラットフォームへのモジュール追加をサポートします。
JSR 376: JavaTM Platform Module System
https://jcp.org/en/jsr/detail?id=376
アノテーションの繰返しのサポートを改善するために、ちょっとしたAPIの変更も行われました。 API変更の詳細なサマリは、MR資料に含まれています。
JSR 269 MR summary
https://jcp.org/aboutJava/communityprocess/maintenance/jsr269/summary-2017-02-28.html
APIの変更は、既存のプロセッサーのソースやバイナリリンケージ、および実行時の動作と大きく互換性がありように意図されています。ただし、JDK 9で実行している場合は、既存のプロセッサーが正常に動作することを確認する際に便利です。JDK 9早期アクセスバイナリーは以下のURLからダウンロードできます。
JDK 9 Project
https://jdk9.java.net/
是非JDK 9でプロセッサーを実行した体験を(原文の)コメント欄やメールでご連絡ください。API変更に関するフィードバックは以下のメーリングリストに対してお送りください。
compiler-dev -- Technical discussion about the development of the Java compiler (javac)
http://mail.openjdk.java.net/mailman/listinfo/compiler-dev

[Java] Malthusian Locks

原文はこちら。
https://blogs.oracle.com/dave/entry/malthusian_locks1

Malthusian LocksについてEuroSys 2017で発表します。
Malthusian Locks
https://blogs.oracle.com/dave/resource/eurosys17-dice.pdf
EuroSys 2017
http://eurosys2017.org/
上記PDFは抜粋で、arxivにもUpされています。
Malthusian Locks
https://arxiv.org/abs/1511.06035

Abstract:

モダンなマルチスレッド環境で動作するアプリケーションは時としてオーバースレッド(スレッド過多)の場合があります。スレッドが多すぎる場合、パフォーマンスの改善が見込めないどころか、スケーラビリティが壊れてパフォーマンスが低下する原因になることがあります。また、利用可能なCPUコアに比べて準備されているスレッドが少ない場合にも発生する可能性があります。こういったソフトウェアにはロック競合が多いこともあります。一定期間内にロックを循環する個別のスレッドの数を意図的に制限するためロック許可ポリシーを変更することによって、このようなロックの存在を利用します。具体的には、ロックが(継続的に保持されて)飽和状態となるために必要なスレッド数よりも多くのスレッドが循環している場合、筆者の考える手法では、余分なスレッドの一部を選択して取り除きます。ロック競合に陥っている場合、メモリ管理におけるスワッピングの概念を借りて、同時実行制限(CR、 concurrency restriction)を課します。結果として決まる入場順は、確かに短期的には不公平ではありますが、定期的に不動態化されたスレッドと、アクティブに循環しているスレッド間でシフトすることで、明示的に長期的な公平性を提供します。具体的には、無制限のバイパスや欠乏を許す、よくあるtest-and-setテストに比べ、スループットが影響をうけない、もしくは改善され、そして不公平が制限されます。パイプラインやプロセッサ、キャッシュといった共有リソースの競合の減少によって、並行性の制限が結果として全体的なリソース消費を削減し、システム全体の負荷容量を向上させる可能性があります。

[Java] Additional details on GlassFish 5 Promoted Build 3

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/additional_details_on_gf5_promoted

Java EE 8の進展に伴い、GlassFishはここ数ヶ月の間に活動を開始しましたGlassFish 5のNightly Buildの安定化後、GlassFishの週次プロモーションプロセスを復活させました。その後時間がかかりましたが、週次Promoted buildのGlassFish-5,0-b03をリリースしました。
GlassFish 5.0 Promoted Build
http://download.oracle.com/glassfish/5.0/promoted/index.html
是非お試しいただき、フィードバックをしてください。
GlassFish 5を実行する上で必要なJDKバージョンの要件はJDK 8u121です。

以下のコンポーネント統合され、このビルドに含まれています。
  • JSF 2.3.0-m11
  • Jersey 2.26-b02
  • JAX-RS 2.1-m03
  • HK2 2.5.0-b33
  • Grizzly 2.3.29
  • Grizzly NPM 1.7
  • Jboss Logging 3.3.0.Final
  • Tyrus 1.13.1
  • Jackson 2.8.4
  • JSTL 1.2.5-b03
  • Servlet 4.0.0-b03

Servlet 4.0 Update

Webコンテナで多くの進捗がありました。

Issue ID or Commit RevisionSummary
r64700Integrate javax.servlet:javax.servlet-api:4.0.0-b03
SERVLET_SPEC-73Add API for Servlet Mapping
SERVLET_SPEC-161
implemented by GLASSFISH-21688
Allow encoding to be set from deployment descriptor
r64338Updates schema files for Servlet 4.0
SERVLET_SPEC-16
implemented by GLASSFISH-21666
Allow setting the jsp-file programmatically
SERVLET_SPEC-134Updates for spec and impl of server push
SERVLET_SPEC-137
implemented by GLASSFISH-21673
Allow setting the default context-path without resorting to container specific config

修正済みのBug

以下のバグはこのビルドで対応済みです。
Issue IdSummary
GLASSFISH-21677Need to remove -Xbootclasspath from domain.xml
GLASSFISH-21671Switch appserver build to source=1.8 and target=1.8
GLASSFISH-21656list-jms-resources fails if operand is clustered instance
GLASSFISH-21655rollback of create-jms-resource fails when resource has already existed
GLASSFISH-21650countopenconnections is not counted at the request to http-listener-2 of the cluster
GLASSFISH-21649countqueued1minuteaverage does not count the value for one minute
GLASSFISH-21648corethreads and maxthreads are always zero
GLASSFISH-21646countbytesreceived and countbytestransmitted count the value of requests to admin-listener
GLASSFISH-21645maxopenconnections of HttpServiceStatsProvider is always the same.
GLASSFISH-21644Not able to deploy app with cdi validator support
GLASSFISH-21642access-logging-bad-requests web devtests fails in Hudson
GLASSFISH-21640JMS message in server.log is logged only message key.
GLASSFISH-21639difficult maintained log messages
GLASSFISH-21591[GF-JDK9] JDK internal API sun.misc.URLClassPath used in com.sun.appserv.ClassLoaderUtil
GLASSFISH-21589Problems with resource deletion if all resource targets are deleted
GLASSFISH-21585The list of JVM options is lost empty when an invalid option is added.
GLASSFISH-21584A new property cannot be added in "Cluster System Properties" page.
GLASSFISH-21580WebappClassLoader is not thread safe
GLASSFISH-21579asadmin list-file-groups exits successfully although user doesn't exist
GLASSFISH-21576javamail debug log is not logged.
GLASSFISH-21574asadmin deploy --precompilejsp doesn't check compilerSourceVM and compilerTargetVM in glassfish-web.xml
GLASSFISH-21573Server log messages are unexpectedly trimmed if the message starts with or ends with spaces.
GLASSFISH-21572AS-WEB-GLUE-00078 is logged to the server.log although both tls11-enabled and tls12-enabled are true.
GLASSFISH-21560"asadmin list-logger-levels" does not list java.util.logging.ConsoleHandler
GLASSFISH-21546password alias is not updated until restart the process.
GLASSFISH-21542Update jboss.logging
GLASSFISH-21522NullPointerException during WebDirContext.lookupFromJars
GLASSFISH-21515Possible null pointer dereference
GLASSFISH-21505JDK9 - Unable to launch the Application Client Container
GLASSFISH-21494Double checked locking problem
GLASSFISH-21479Glassfish 4.1 won't start with JDK 9 build jdk9-b95 (and later)
GLASSFISH-21376There is a "null" in the log name
GLASSFISH-21276A number of monitor mbeans are broken
GLASSFISH-21272JDBC Monitoring MBeans not working in JConsole
GLASSFISH-20917a wrong implementation for web-fragment.xml with <distributable/> issue
GLASSFISH-20858Message "Invalid Url Pattern" contains placeholder, while it obviously must contain the invalid pattern

[Database] Python cx_Oracle 5.3 for Oracle Database Released

原文はこちら。
https://blogs.oracle.com/opal/entry/python_cx_oracle_5_3

本日、Oracle Database用の非常に人気のあるPythonインタフェースであるcx_Oracle 5.3のリリースを発表できうれしく思います。バイナリとソースはPyPiを使って通常通りインストールできます。
Python interface to Oracle (Python Package Index)
https://pypi.python.org/pypi/cx_Oracle/
Installation
https://github.com/oracle/python-cx_Oracle#installation
cx_Oracle 5.3は、Python v2.7、およびv3.4以上で動作します。cx_OracleはOracle 11gR2、12cR1、および12cR2クライアント・ライブラリとともに使用することができ、複数のOracle Databaseバージョンに接続できます。Oracle Databaseの標準的なクライアント・サーバー・バージョンの互換性により、古いデータベースと新しいデータベースの両方に接続できます。たとえば、Oracle Database 11gR2クライアント・ライブラリを使うとOracle Database 10gR2以降に接続できます。
今回のリリースでは、ソースコードリポジトリとホームページをGitHubに移行しました。 ユーザー文書はreadthedocsに残しています。cx_Oracleメーリングリストも引き続き同じ環境ですが、質問や問題についてはGitHubに移行しています。
ソースコード(Python interface to Oracle Database)
https://github.com/oracle/python-cx_Oracle
ホームページ
https://oracle.github.io/python-cx_Oracle/index.html
Documentation
http://cx-oracle.readthedocs.io/en/latest/index.html
cx-oracle-users メーリングリスト
https://lists.sourceforge.net/lists/listinfo/cx-oracle-users
GitHub Issues
https://github.com/oracle/python-cx_Oracle/issues

The New cx_Oracle 5.3

Anthony TuiningaがOracleに加わって以来、cx_Oracleの改善を加える作業に取り組んできました。(彼は次の大きなリリースのための基礎となる作業もしていますが、これについてはこの記事の後半で説明します)。みなさんがcx_Oracle 5.3に感銘を受けるであろうと考えています。昨年のOracle OpenWorldでは、Anthonyがいくつかの変更について話し、よいフィードバックをたくさんいただきました。昨年のOpenWorldでのプレゼンテーションは以下のURLでチェックしてください。
Python and Oracle Database: Tips, Tricks, and the Best New Features [CON6543]
https://oracle.rainfocus.com/scripts/catalog/oow16.jsp?search=CON6543&showEnrolled=false&search.event=oracleopenworld
これは大きなアップデートです。一部はOracle Database 12cの機能に固有の変更ではありますが(リリース・ノートを参照してください)、たとえ古いデータベースを利用されている場合でも、このアップデートでアプリケーションの性能がよくなることがわかるでしょう。そして、Oracle Database 12cR2にアップグレード中、もしくはその予定がありますか?Oracle Database Cloudを使用してOracle Database 12cR2にすぐにアクセスできることをお忘れなく。
Release Note
http://cx-oracle.readthedocs.io/en/5.3/releasenotes.html#version-5-3-march-2017
Oracle Database Software Downloads
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
Oracle Database Cloud Service
https://cloud.oracle.com/ja_JP/database

Key New Features

Other New Features

Changes from cx_Oracle 5.2

以前のリリースで廃止対象のものとした発表に沿い、以下のアイテムがcx_Oracle 5.3で利用できなくなりました。
  • maxlength という変数属性は使えなくなりました。その代わりにbufferSizeを使ってください。
  • allocelems という変数属性は使えなくなりました。その代わりに numElements を使ってください。
  • UNICODEFIXED_UNICODELONG_UNICODE 型は使えなくなりました。その代わりに NCHARFIXED_NCHARLONG_NCHAR を使ってください。
  • OCI 関数のコールバックはサポートされなくなりました。

Future Deprecation Announcements

将来リリース予定のcx_Oracle 6では、以下のアイテムが廃止される予定です。
  • cx_Oracle.connect()twophasemoduleaction、そしてclientinfoの引数が廃止され、cx_Oracle 6では使えなくなる予定です。その代わりに新しいアプリケーション・コンテキスト(application context)を利用してください。
  • カーソル属性numbersAsStringsが廃止され、cx_Oracle 6では使えなくなる予定です。その代わりにOUTPUT型ハンドラ(output type handler)を利用してください。

Things you could already do in cx_Oracle 5.2

上記のcx_Oracle 5.3のすべての新機能は、これまでに積み上げたデータベースサポートの上に成り立っています。以前のリリースで既に使用可能な高度な機能は次のとおりです。
  • SQLおよびPL/SQLの実行
  • 豊富なデータ型のサポート
  • 大規模な結果セットの取得
  • REF CURSOR
  • PL/SQL配列のバインド
  • ラージオブジェクト(CLOB、BLOB)
  • トランザクション管理
  • セッション・プーリング
  • データベース常駐接続プーリング(DRCP)
  • 特権接続とデータベースの起動・停止
  • 外部認証
  • Continuous Query Notification
  • 行プリフェッチ
  • クライアントの結果キャッシュ
  • End-to-Endのトレース
  • Oracle Database 高可用性機能

A future cx_Oracle 6

先ほど、みなさんがcx_Oracle 5.3に感銘を受けるだろうと書きましたが、Anthonyはより良いものを目指し、すでにcx_Oracle 6を見据えています。昨年Anthonyは、cx_Oracleが使用されるような、一般的なOracle Call Interface (OCI)機能の利用を簡素化し標準化するオープンソースのCライブラリである、ODPI-Cに熱心にとりくんできました。ODPI-Cは最近Githubで公開されました。cx_Oracleのソースコードからわかるように、cx_OracleコードのマスターブランチはODPI-Cを使用するようにアップデートされています。この将来のリリースの現状をテストしたい場合は、GitHubからバンドルをダウンロードしてビルドしてください。ユーザーに見える範囲での変更に関する(これまでの)リリースノートは以下のURLにあります。
Oracle Database Programming Interface for Drivers and Applications (ODPI)
https://github.com/oracle/odpi
Release notes (6.x releases)
https://github.com/oracle/python-cx_Oracle/blob/master/doc/src/releasenotes.rst

Summary

cx_OracleをOracleの傘下に移すことで、Anthonyはcx_Oracleに注力する時間が増え、結果としてすべての開発者にとってデータベースへのアクセスが向上しました。
全体的に、cx_OracleはOracle Databaseのための最も包括的で人気のあるスクリプト言語ドライバで、cx_OracleはOracleクライアント・ライブラリやOracle Databaseに組み込まれた優れた機能を活用しますし、もちろん、cx_Oracleを使うPythonアプリケーションは、ネットワーク・データの暗号化などのOracle Net機能を利用することができます。
cx_Oracle 5.3は、Oracle Databaseの優れた機能をサポートする大きなリリースです。 是非チェックしてください。

cx_Oracle Resources

cx_Oracle
https://oracle.github.io/python-cx_Oracle/index.html
Documentation
http://cx-oracle.readthedocs.io/en/latest/index.html
cx-oracle-users メーリングリスト
https://lists.sourceforge.net/lists/listinfo/cx-oracle-users
GitHub Issues
https://github.com/oracle/python-cx_Oracle/issues
Python interface to Oracle Database
https://github.com/oracle/python-cx_Oracle

[Java] An update on GlassFish 5

原文はこちら。
https://blogs.oracle.com/theaquarium/entry/glassfish_5_update

参照実装(Reference Implementation)は全てのJSRにとって重要な部分であり、このことはJava EEにとっては特にその通りです。種々のJava EE 8に関連するJSRが進展するにつれて、オープンソースのJava EE 8参照実装であるGlassFish 5の取り組みを強化することが重要になっています。そして今日、最初のGlassFish 5 Promotedビルド(GlassFish-5.0-b03)を発行し、Java EE 8の重要なマイルストンをむかえました。
Promoted build of GlassFish 5
http://download.oracle.com/glassfish/5.0/promoted/index.html
実はGlassFish 5のビルドとして2種類リリースしています。一つは nightly 、そしてもう一つは promoted で、両方ともFull ProfileとWeb Profileがあります。
まだまだ早期段階で、まだまだ開発中ということは明白です。種々の仕様で、それぞれの参照実装(例えばJAX-RSだとJersey、Bean ValidationだとHibernate Validatorなど)があるだけでなく、それぞれの仕様のTCKもあります。それゆえ、全てのGlassFish 5 promoteビルドがJava EE 8 CTSを全てパスしているとはまだ言ってはいません(というか言えない)。
Q: Are there compatibility tests for the Java EE platform? (Java EE FAQ)
http://www.oracle.com/technetwork/java/javaee/javaee-faq-jsp-135209.html#compatibilitytests
また、以下に述べるビルドサイクルは、ビルドの実状に応じて変化する可能性があることも言及しておかねばなりません。例えば、ビルドが壊れていると、遅延したり、スキップされたりすることがあります。

Java EE 8はJava SE 8以上をベースにしているため、Java SE 8をGlassFish 5のベースラインJDKとして使用していますが、GlassFish F5の最終的なリリースではJava SE 9もサポートする予定です。そのため、今週のPromotedビルドはJava SE 9では動作しませんが、それは一時的なものです。

Nightlyビルドは最新のPromotedビルドの数日先のものになることが常ですが、コミュニティの皆様には、是非Promotedビルドを使っていただきたく思っています。そのため、GlassFish 5の最新のPromotedビルドをテストすることで是非支援ください。何か問題を発見した場合には、以下を参考にして、該当するGlassFishコンポーネントに対するチケットを発行してください。
Components
https://java.net/jira/browse/GLASSFISH/?selectedTab=com.atlassian.jira.jira-projects-plugin:components-panel
そして、問題が特定のコンポーネント(例えばJersey)にあると確信できるのであれば、直接当該コンポーネントに対する問題として知らせてもらえるとなお効率がよいです。

GlassFish 5はJava EE 8 Platform仕様(JSR 366)がファイナライズされたおよそ6週間後にリリースする予定になっています。
JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification
https://jcp.org/en/jsr/detail?id=366
現時点では、仕様策定完了は7月を目指しており、結果としてリリース日は8月もしくは9月頃になると見込んでいます。このスケジュールは変更の可能性がありますが、これが現時点の見通しです。
[jsr366-experts] Java EE 8 schedule
https://java.net/projects/javaee-spec/lists/jsr366-experts/archive/2017-02/message/0

[Database] Property Graph Query Language (PGQL) support has been added to Oracle Database 12.2.0.1!

原文はこちら。
https://blogs.oracle.com/oraclespatial/entry/property_graph_query_language_pgql

Oracle Database 12c Release 2 (12.2.0.1)で、Oracle Spatial and Graphの既存のProperty Graph機能にProperty Graph Query Language (PGQL) のサポートを追加するパッチがリリースされました。ダウンロードにはMy Oracle Supportの契約が必要です。
Patch 25640325: MISSING PGQL FUNCTION IN ORACLE DATABASE RELEASE 12.2.0.1
https://support.oracle.com/rs?type=patch&id=25640325
PGQLはSQLのような宣言型言語で、これを使って、頂点と辺、ならびに頂点と辺のプロパティへの制約から構成されるグラフクエリパターンを表現することができます。
このパッチを貴社のデータベースインスタンスに適用すると、以下のGroovy/Javaベースのクイックテストを実行して、動作方法を確認できます。
cd $ORACLE_HOME/md/property_graph/dal/groovy
sh ./gremlin-opg-rdbms.sh 

--------------------------------

opg-oracledb> // It is very likely that you need to customize JdbcURL, Username, and Password in the following graph config setting.
opg-oracledb> // 
opg-oracledb> cfg = GraphConfigBuilder.forPropertyGraphRdbms().setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl")
                    .setUsername("scott").setPassword("tiger")
                    .setName("connections") .setMaxNumConnections(8)
                    .setLoadEdgeLabel(false) .addVertexProperty("name", PropertyType.STRING, "default_name")
                    .addEdgeProperty("cost", PropertyType.DOUBLE, "1000000")
                    .build(); 

opg-oracledb> opg = OraclePropertyGraph.getInstance(cfg);

opg-oracledb> opg.clearRepository();     // start from scratch

opg-oracledb> opgdl=OraclePropertyGraphDataLoader.getInstance();

opg-oracledb> vfile="../../data/connections.opv"  // vertex flat file
==>../../data/connections.opv
opg-oracledb> efile="../../data/connections.ope"  // edge flat file
==>../../data/connections.ope
opg-oracledb> opgdl.loadData(opg, vfile, efile, 2, 10000, true, null);
==>null

opg-oracledb> opg.countVertices()
==>78
opg-oracledb> opg.countEdges()
==>164

opg-oracledb> // Create an in memory analytics session and analyst

opg-oracledb> session=Pgx.createSession("session_ID_1");

opg-oracledb> analyst=session.createAnalyst();
opg-oracledb> 
opg-oracledb> // Read graph data from database into memory

opg-oracledb> pgxGraph = session.readGraphWithProperties(opg.getConfig());
==>PgxGraph[name=connections,N=78,E=164,created=1488415009543]

opg-oracledb> pgxResultSet = pgxGraph.queryPgql("SELECT n,m WHERE (n) -> (m)")
==>PgqlResultSetImpl[graph=connections,numResults=164]

opg-oracledb> pgxResultSet.print(10);
+------------------------------------+
| n                | m               |
+------------------------------------+
| PgxVertex[ID=2]  | PgxVertex[ID=1] |
| PgxVertex[ID=3]  | PgxVertex[ID=1] |
| PgxVertex[ID=6]  | PgxVertex[ID=1] |
| PgxVertex[ID=7]  | PgxVertex[ID=1] |
| PgxVertex[ID=8]  | PgxVertex[ID=1] |
| PgxVertex[ID=9]  | PgxVertex[ID=1] |
| PgxVertex[ID=10] | PgxVertex[ID=1] |
| PgxVertex[ID=11] | PgxVertex[ID=1] |
| PgxVertex[ID=12] | PgxVertex[ID=1] |
| PgxVertex[ID=19] | PgxVertex[ID=1] |
+------------------------------------+

[Linux] Now available: Oracle Linux Vagrant Box

原文はこちら。
https://blogs.oracle.com/linux/entry/now_available_oracle_linux_vagrant

Vagrantは仮想マシンベースの環境を管理するためのツールです。
Vagrant
https://vagrantup.com/
でもなぜVagrantを使うのでしょう。Linuxで動作するコードを開発しているけれども、macOSやWindowsマシンを使ってお気に入りのブラウザ、エディタ、デバッガ、開発ツールを使う場合に、Vagrantは構成や依存性を開発マシンから分離して自由に使えるLinux環境を作成するための一環したワークフローを提供します。 
Vagrant Boxは事前ビルド済みのベースイメージで、Vagrantにインポートできます。Oracle Linux 7.3をVagrant Boxにパッケージングしました。このすぐに使えるパッケージを利用するには、Oracle VM VirtualBoxとVagrantをインストールしておく必要があります。もしまだであれば、以下からダウンロードできます。
これらのインストールが完了したら、以下のコマンドを使ってOracle Linux Boxをダウンロードし、起動することができます。
mkdir ol73; cd ol73
vagrant box add --name ol73 http://yum.oracle.com/boxes/oraclelinux/ol73/ol73.box
vagrant init ol73
vagrant up
vagrant ssh
この後、Oracle Linuxの環境にログインすれば、使えるようになります。作業ディレクトリは上記で作成済み(ol73)なので、これを仮想マシンに共有フォルダとして /vagrant にマウントすれば、Oracle LinuxゲストVMでそうしたファイルにアクセス、コンパイル、実行しながら、ホスト側で開発ツールやエディタを利用してコードや他のファイルを編集できます。

Linuxのゲスト環境が不要になったら、以下のコマンドで削除できます。
vagrant destroy
今回リリースしたOracle LinuxのVagrant Boxは以下のような高レベルなスペックです。
  • ダウンロードサイズ:378 MB
  • 2 vCPUs
  • 2048 MB RAM
  • Oracle Linux 7.3 +Unbreakable Enterprise Kernel 4.1.12-61.1.28.el7uek.x86_64 
  • 最小パッケージセットをインストール済み
  • VirtualBox guest additions 5.1.12インストール済み
  • rootボリューム:12 GBの割り当て
  • Swap:4 GB の割り当て 
  • ルートファイルシステム:XFS
  • Oracle Yumサーバー(yum.oracle.com)の構成済み
将来もっと多くのOracle Linux Boxがリリースされる予定ですので、以下のURLをチェックしてください。思うところがありましたら、(原文の)コメント欄にどうぞ。
Oracle Linux Vagrant Boxes
http://yum.oracle.com/boxes
(訳注)
上記URLにも記載がありますが、利用にあたってお金は不要ですが、サポートはありませんので、お問い合わせはOTNのOracle Linux Community Forumにお願いします。
Oracle Linux Community Forum
https://community.oracle.com/community/server_&_storage_systems/linux/oracle_linux