SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Experiences with Evangelizing Java Within
the Database
About
●
About me
– CTO at Scotas.com
– Founder of the ArOUG
– ACE Member since 2006
– Open Source Developer (DBPrism/ DBPrism CMS, LDI, ...)
– Oracle developer since 1999
●
About Scotas
– A company specialized in free text search, synchronization
and Oracle
– OLS, Native Solr integration
– External Solr/ ElasticSearch integration
www.scotas.com
www.scotas.com
Agenda
– Database resident JVM
– History of the JVM implementation
– Evangelizing about Database resident JVM
●
Experience during
– Developing
– Testing
– Deploying
●
Examples
– Conclusion
Database resident JVM time-line
●
8i (1999, JDK1.2, JSP, ORB, NCOMP)
●
9i (2001, JDK 1.3, NCOMP)
●
10g (2003 R1, 2005 R2, JDK 1.4, NCOMP)
●
11g (2007, JDK 1.5, JIT)
●
12c (2013, JDK 1.6/1.7/.., JIT)
www.scotas.com
Database resident JVM architecture
www.scotas.com
Components
Sun’s JDK versus Database resident JVM
Sun’s JDK VM
●
Thread Based
●
Sharing across Threads
●
Limited Scalability
●
Classes in file system
●
Resolve classes with
“Classpath”
●
JIT
●
Preemptive multi-threading
●
Limited Robustness (process
failure)
Database resident JVM
●
Database Session Model
●
Session Isolation
●
Unlimited Scalability
●
Classes in database
●
Resolve classes with
“Resolver Spec”
●
JIT (11g and up)
●
Non-Preemptive multi-
threading
●
Does not crash as a whole
www.scotas.com
Oracle’s Commitment to OJVM
●
Used by a growing number of database customers acording
to Oracle
●
Used by Oracle Components
– InterMedia
– Spatial
– Text
– XQuery (XMLDB)
– WareHouse Builder
– CDC (Change Data Capture)
– ODM (Oracle Data Mining analytics functions)
●
12c Enhancements
www.scotas.com
●
Many among Fortune 500 companies
●
Some examples from
“Java in the Oracle Database @ Work – Customer Case Studies”
●
And for sure Scotas & Cima
Who is Using OJVM
www.scotas.com
Java in the Database: What For
www.scotas.com
●
Trigger-based Notification System
using RMI
●
Secure Credit-Card Processing using
JSSE
●
Custom Alert applications that
monitor business data
●
Sending emails with attachment
from within the database
●
Produce PDF files from Result Set
●
Execute external OS commands and
external procedures
●
Implement Md5 CRC
●
Publish Repository Content to Portal
●
Portable Logistic Applications
●
Implement Parsers for various File
Formats (txt, zip, xml, binary)
●
Implement Image Transformation
and Format Conversion (GIF, PNG,
JPEG, etc)
●
Implement Database-resident
Content Management System
●
HTTP Call-Out
●
JDBC Call-Out
●
RMI Call-Out to SAP
●
Web Services Call-Out
●
Messaging across Tiers
●
RESTful Database Web Services
●
Near Real Time Full Text Search
Evangelizing Java Within the Database
www.scotas.com
Experiences in:
Experiences during development
●
Basically any Java IDE works, but
●
JDeveloper is better:
– Database integration
●
Database navigator
●
Database reports
●
Find objects
●
DBMS_OUTPUT
– Database resident Java Class browser
– Remote debugger
●
Use $ORACLE_HOME/jdk for compilling
●
Use library dependencies $ORACLE_HOME:
– javavm/lib/ (database resident JVM implemenetation Aurora)
– rdbms/jlib/ (database resident APIs such as ODCI, XDB, Servlet)
– jdk/lib/ (properly JDK specific libs)
– lib/ (Oracle functionalities such as XML Parser)
– jdbc/lib (Oracle JDBC implementation)
●
If you have problem with target JDK, Retro-translator is your friend
www.scotas.com
Experiences during testing
●
There is no visual feedback (Java headless)
●
Code could be tested in an external JVM encapsulating your
JDBC connection funtionality
●
Use a logging framework
– Java Util Logging works (JUL)
– Apache Log4J works (more funtionality)
– Usually logging information goes to .trc files
●
Use JDeveloper for remote debugging (dbms_debug_jdwp)
●
Incorporate JUnit integration
– Class loader issues
– Security concerns
www.scotas.com
Experiences during deployment
●
Incorporate Ant or Maven
– One sentence deployment
– DBA likes scripts for installing
– Imagine you are deploying your apps in a Datacenter
using ssh
●
Use NCOMP with DB version < 11g
●
Important!!! name your libraries with version numbers
major.minor.patch
●
Allways incorporate version control (SVN, CVS, GIT)
●
Write many test suites
●
Size your Database resident memory areas properly
www.scotas.com
Examples – DBPrism CMS
●
At the time of PSP (formerly HTMLDB, WebDB, Apex..)
●
Using DBPrism connector example for the Book
Profesional XML Databases
●
Develop as an example for the Book
Oracle Database Programming using Java and Web Services
●
Presented at Second Open Source Content Management
Conference , Berkeley, CA
●
A CMS working as Java Stored Procedures
●
Using Apache Cocoon as presentation framework
●
Using Struts's controller idea, view (XQuery pages),
Controller (Java Stored Procedures)
●
Exploring many XMLDB functionalities (XQuery, XSL,
Oracle Text, ...)
www.scotas.com
Examples – RESTFul Web Services
●
An Extension to restlet.org project
●
A Java Servlet Connector for XMLDB
●
Incorporated to the code base of OSS Project
●
Allows user to write RESTFul Web Services in Java
●
Connection are accepted directly by Oracle Listener
●
Many connections spawn several parallel shared servers
●
Java reflection was used to avoid static dependency to
propietary API
●
Main problem found was Servlet 2.2 API support into XMLDB,
still the same in 12c
●
Allows remote debugging of RESTFul implementation (
dbms_debug_jdwp)
www.scotas.com
Examples - Scotas OLS
www.scotas.com
●
An Embedded version of Solr Framework running inside Oracle JVM
●
42 new Java Classes and several new PLSQL Object Types
●
Four new SQL operators scontains(), sscore(), smlt(), shighlight()
and poweful text analysis functionalities
●
An orthogonal/up-to-date Solr solution for any programming
language, especially Java, Ruby, Python, PHP and .Net, currently
latest production version – 4.0.0.
●
Available to any Oracle product such as BI, Apex, ODM
create index esl_events_sidx on esl_events(message) indextype is Lucene.SolrIndex
parameters('SyncMode:Deferred;MltColumn:text;HighlightColumn:title;DefaultColumn:text;Co
mmitOnSync:true;ExtraTabs:ESL.esl_causes
c;WhereCondition:L$MT.event_id=c.event_id(+);ExtraCols:.....') local parallel 2;
create index esl_events_sidx on esl_events(message) indextype is Lucene.SolrIndex
parameters('SyncMode:Deferred;MltColumn:text;HighlightColumn:title;DefaultColumn:text;Co
mmitOnSync:true;ExtraTabs:ESL.esl_causes
c;WhereCondition:L$MT.event_id=c.event_id(+);ExtraCols:.....') local parallel 2;
select /*+ DOMAIN_INDEX_SORT */ sscore(1),shighlight(1),message from esl_events
where scontains(message,'severity_s:(ERROR INFO) AND springframework',1)>0 and
gen_day between 26 and 27;
select /*+ DOMAIN_INDEX_SORT */ sscore(1),shighlight(1),message from esl_events
where scontains(message,'severity_s:(ERROR INFO) AND springframework',1)>0 and
gen_day between 26 and 27;
Conclusions
●
Open Source projects
– Release early, release often (to attract contributors, see Hadoop
version 0.20)
– Due to Oracle License limitation we can not incorporate OSS code in
main branch, Examples DBPrism Adapter, Restlet Adapter)
– Loading OSS libraries into the RDBMS is not well views by DBAs
●
Corporate projects
– Impedance mistmatch
●
DBA don't have Java skills
●
Java Developers don't have DBA skills
●
PLSQL Developer don't have OO skills
– Architects don't really know database resident potentiality
– Same challenges are now by incorporating Hadoop in Oracle projects
www.scotas.com
Answers!
www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085
Thank
You!
www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085

Weitere ähnliche Inhalte

Was ist angesagt?

Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionFlorent Georges
 
Introduction to dataset
Introduction to datasetIntroduction to dataset
Introduction to datasetdatamantra
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath PackagingFlorent Georges
 
What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAPLDAPCon
 
Using NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionUsing NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionindiver
 
Serialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsSerialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsAlex Tumanoff
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFlyJBUG London
 
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)Ortus Solutions, Corp
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Dylan Butler
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with GatlingPetr Vlček
 
FITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC
 
The Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBIgor Canadi
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger InternalsNorberto Leite
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11なおき きしだ
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11なおき きしだ
 
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...Hisham Mardam-Bey
 
Apache ManifoldCF @ Linux Day 2012
Apache ManifoldCF @ Linux Day 2012Apache ManifoldCF @ Linux Day 2012
Apache ManifoldCF @ Linux Day 2012Piergiorgio Lucidi
 

Was ist angesagt? (20)

Balisage - EXPath - A practical introduction
Balisage - EXPath - A practical introductionBalisage - EXPath - A practical introduction
Balisage - EXPath - A practical introduction
 
Introduction to dataset
Introduction to datasetIntroduction to dataset
Introduction to dataset
 
Balisage - EXPath Packaging
Balisage - EXPath PackagingBalisage - EXPath Packaging
Balisage - EXPath Packaging
 
RocksDB meetup
RocksDB meetupRocksDB meetup
RocksDB meetup
 
What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAP
 
Using NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionUsing NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusion
 
Serialization and performance by Sergey Morenets
Serialization and performance by Sergey MorenetsSerialization and performance by Sergey Morenets
Serialization and performance by Sergey Morenets
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
 
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
CBDW2014 - NoSQL Development With Couchbase and ColdFusion (CFML)
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
 
MyRocks in MariaDB
MyRocks in MariaDBMyRocks in MariaDB
MyRocks in MariaDB
 
Load testing in Zonky with Gatling
Load testing in Zonky with GatlingLoad testing in Zonky with Gatling
Load testing in Zonky with Gatling
 
FITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JSFITC presents: Mobile & offline data synchronization in Angular JS
FITC presents: Mobile & offline data synchronization in Angular JS
 
The Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDBThe Hive Think Tank: Rocking the Database World with RocksDB
The Hive Think Tank: Rocking the Database World with RocksDB
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDB
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger Internals
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
 
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...Type safe, versioned, and rewindable stream processing  with  Apache {Avro, K...
Type safe, versioned, and rewindable stream processing with Apache {Avro, K...
 
Apache ManifoldCF @ Linux Day 2012
Apache ManifoldCF @ Linux Day 2012Apache ManifoldCF @ Linux Day 2012
Apache ManifoldCF @ Linux Day 2012
 

Ähnlich wie Experiences with Evangelizing Java Within the Database

Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloJulian Arocena
 
Java Script recruiting
Java Script recruitingJava Script recruiting
Java Script recruitingIhor Odynets
 
Hadoop spark online demo
Hadoop spark online demoHadoop spark online demo
Hadoop spark online demoTripti Jha
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBob Ward
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusBoldRadius Solutions
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - JavaAnkit Chohan
 
Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Dave Stokes
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09Chris Purrington
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...Bob Ward
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkAlex Zeltov
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Per Henrik Lausten
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )Rajput Rajnish
 
node.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoonnode.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang YoonJesang Yoon
 

Ähnlich wie Experiences with Evangelizing Java Within the Database (20)

Scotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao PabloScotas - Oracle Open World Sao Pablo
Scotas - Oracle Open World Sao Pablo
 
Oracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node finalOracle application container cloud back end integration using node final
Oracle application container cloud back end integration using node final
 
Prashant_Agrawal_CV
Prashant_Agrawal_CVPrashant_Agrawal_CV
Prashant_Agrawal_CV
 
Java Script recruiting
Java Script recruitingJava Script recruiting
Java Script recruiting
 
Venkata
VenkataVenkata
Venkata
 
Hadoop spark online demo
Hadoop spark online demoHadoop spark online demo
Hadoop spark online demo
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and docker
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
 
Mohamed Mahgoub_CV
Mohamed Mahgoub_CVMohamed Mahgoub_CV
Mohamed Mahgoub_CV
 
Ankit Chohan - Java
Ankit Chohan - JavaAnkit Chohan - Java
Ankit Chohan - Java
 
Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019Python And The MySQL X DevAPI - PyCaribbean 2019
Python And The MySQL X DevAPI - PyCaribbean 2019
 
Node.js an Exectutive View
Node.js an Exectutive ViewNode.js an Exectutive View
Node.js an Exectutive View
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
 
Intro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with sparkIntro to big data analytics using microsoft machine learning server with spark
Intro to big data analytics using microsoft machine learning server with spark
 
Ml2
Ml2Ml2
Ml2
 
Ow
OwOw
Ow
 
Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)Intro to XPages for Administrators (DanNotes, November 28, 2012)
Intro to XPages for Administrators (DanNotes, November 28, 2012)
 
Rajnish singh(presentation on oracle )
Rajnish singh(presentation on  oracle )Rajnish singh(presentation on  oracle )
Rajnish singh(presentation on oracle )
 
node.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoonnode.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoon
 

Kürzlich hochgeladen

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Experiences with Evangelizing Java Within the Database

  • 1. Experiences with Evangelizing Java Within the Database
  • 2. About ● About me – CTO at Scotas.com – Founder of the ArOUG – ACE Member since 2006 – Open Source Developer (DBPrism/ DBPrism CMS, LDI, ...) – Oracle developer since 1999 ● About Scotas – A company specialized in free text search, synchronization and Oracle – OLS, Native Solr integration – External Solr/ ElasticSearch integration www.scotas.com
  • 3. www.scotas.com Agenda – Database resident JVM – History of the JVM implementation – Evangelizing about Database resident JVM ● Experience during – Developing – Testing – Deploying ● Examples – Conclusion
  • 4. Database resident JVM time-line ● 8i (1999, JDK1.2, JSP, ORB, NCOMP) ● 9i (2001, JDK 1.3, NCOMP) ● 10g (2003 R1, 2005 R2, JDK 1.4, NCOMP) ● 11g (2007, JDK 1.5, JIT) ● 12c (2013, JDK 1.6/1.7/.., JIT) www.scotas.com
  • 5. Database resident JVM architecture www.scotas.com Components
  • 6. Sun’s JDK versus Database resident JVM Sun’s JDK VM ● Thread Based ● Sharing across Threads ● Limited Scalability ● Classes in file system ● Resolve classes with “Classpath” ● JIT ● Preemptive multi-threading ● Limited Robustness (process failure) Database resident JVM ● Database Session Model ● Session Isolation ● Unlimited Scalability ● Classes in database ● Resolve classes with “Resolver Spec” ● JIT (11g and up) ● Non-Preemptive multi- threading ● Does not crash as a whole www.scotas.com
  • 7. Oracle’s Commitment to OJVM ● Used by a growing number of database customers acording to Oracle ● Used by Oracle Components – InterMedia – Spatial – Text – XQuery (XMLDB) – WareHouse Builder – CDC (Change Data Capture) – ODM (Oracle Data Mining analytics functions) ● 12c Enhancements www.scotas.com
  • 8. ● Many among Fortune 500 companies ● Some examples from “Java in the Oracle Database @ Work – Customer Case Studies” ● And for sure Scotas & Cima Who is Using OJVM www.scotas.com
  • 9. Java in the Database: What For www.scotas.com ● Trigger-based Notification System using RMI ● Secure Credit-Card Processing using JSSE ● Custom Alert applications that monitor business data ● Sending emails with attachment from within the database ● Produce PDF files from Result Set ● Execute external OS commands and external procedures ● Implement Md5 CRC ● Publish Repository Content to Portal ● Portable Logistic Applications ● Implement Parsers for various File Formats (txt, zip, xml, binary) ● Implement Image Transformation and Format Conversion (GIF, PNG, JPEG, etc) ● Implement Database-resident Content Management System ● HTTP Call-Out ● JDBC Call-Out ● RMI Call-Out to SAP ● Web Services Call-Out ● Messaging across Tiers ● RESTful Database Web Services ● Near Real Time Full Text Search
  • 10. Evangelizing Java Within the Database www.scotas.com Experiences in:
  • 11. Experiences during development ● Basically any Java IDE works, but ● JDeveloper is better: – Database integration ● Database navigator ● Database reports ● Find objects ● DBMS_OUTPUT – Database resident Java Class browser – Remote debugger ● Use $ORACLE_HOME/jdk for compilling ● Use library dependencies $ORACLE_HOME: – javavm/lib/ (database resident JVM implemenetation Aurora) – rdbms/jlib/ (database resident APIs such as ODCI, XDB, Servlet) – jdk/lib/ (properly JDK specific libs) – lib/ (Oracle functionalities such as XML Parser) – jdbc/lib (Oracle JDBC implementation) ● If you have problem with target JDK, Retro-translator is your friend www.scotas.com
  • 12. Experiences during testing ● There is no visual feedback (Java headless) ● Code could be tested in an external JVM encapsulating your JDBC connection funtionality ● Use a logging framework – Java Util Logging works (JUL) – Apache Log4J works (more funtionality) – Usually logging information goes to .trc files ● Use JDeveloper for remote debugging (dbms_debug_jdwp) ● Incorporate JUnit integration – Class loader issues – Security concerns www.scotas.com
  • 13. Experiences during deployment ● Incorporate Ant or Maven – One sentence deployment – DBA likes scripts for installing – Imagine you are deploying your apps in a Datacenter using ssh ● Use NCOMP with DB version < 11g ● Important!!! name your libraries with version numbers major.minor.patch ● Allways incorporate version control (SVN, CVS, GIT) ● Write many test suites ● Size your Database resident memory areas properly www.scotas.com
  • 14. Examples – DBPrism CMS ● At the time of PSP (formerly HTMLDB, WebDB, Apex..) ● Using DBPrism connector example for the Book Profesional XML Databases ● Develop as an example for the Book Oracle Database Programming using Java and Web Services ● Presented at Second Open Source Content Management Conference , Berkeley, CA ● A CMS working as Java Stored Procedures ● Using Apache Cocoon as presentation framework ● Using Struts's controller idea, view (XQuery pages), Controller (Java Stored Procedures) ● Exploring many XMLDB functionalities (XQuery, XSL, Oracle Text, ...) www.scotas.com
  • 15. Examples – RESTFul Web Services ● An Extension to restlet.org project ● A Java Servlet Connector for XMLDB ● Incorporated to the code base of OSS Project ● Allows user to write RESTFul Web Services in Java ● Connection are accepted directly by Oracle Listener ● Many connections spawn several parallel shared servers ● Java reflection was used to avoid static dependency to propietary API ● Main problem found was Servlet 2.2 API support into XMLDB, still the same in 12c ● Allows remote debugging of RESTFul implementation ( dbms_debug_jdwp) www.scotas.com
  • 16. Examples - Scotas OLS www.scotas.com ● An Embedded version of Solr Framework running inside Oracle JVM ● 42 new Java Classes and several new PLSQL Object Types ● Four new SQL operators scontains(), sscore(), smlt(), shighlight() and poweful text analysis functionalities ● An orthogonal/up-to-date Solr solution for any programming language, especially Java, Ruby, Python, PHP and .Net, currently latest production version – 4.0.0. ● Available to any Oracle product such as BI, Apex, ODM create index esl_events_sidx on esl_events(message) indextype is Lucene.SolrIndex parameters('SyncMode:Deferred;MltColumn:text;HighlightColumn:title;DefaultColumn:text;Co mmitOnSync:true;ExtraTabs:ESL.esl_causes c;WhereCondition:L$MT.event_id=c.event_id(+);ExtraCols:.....') local parallel 2; create index esl_events_sidx on esl_events(message) indextype is Lucene.SolrIndex parameters('SyncMode:Deferred;MltColumn:text;HighlightColumn:title;DefaultColumn:text;Co mmitOnSync:true;ExtraTabs:ESL.esl_causes c;WhereCondition:L$MT.event_id=c.event_id(+);ExtraCols:.....') local parallel 2; select /*+ DOMAIN_INDEX_SORT */ sscore(1),shighlight(1),message from esl_events where scontains(message,'severity_s:(ERROR INFO) AND springframework',1)>0 and gen_day between 26 and 27; select /*+ DOMAIN_INDEX_SORT */ sscore(1),shighlight(1),message from esl_events where scontains(message,'severity_s:(ERROR INFO) AND springframework',1)>0 and gen_day between 26 and 27;
  • 17. Conclusions ● Open Source projects – Release early, release often (to attract contributors, see Hadoop version 0.20) – Due to Oracle License limitation we can not incorporate OSS code in main branch, Examples DBPrism Adapter, Restlet Adapter) – Loading OSS libraries into the RDBMS is not well views by DBAs ● Corporate projects – Impedance mistmatch ● DBA don't have Java skills ● Java Developers don't have DBA skills ● PLSQL Developer don't have OO skills – Architects don't really know database resident potentiality – Same challenges are now by incorporating Hadoop in Oracle projects www.scotas.com
  • 18. Answers! www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085
  • 19. Thank You! www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085