Experiences with Evangelizing Java Within
the Database
The impact of MultiTenant Architecture in the develop of Java withi...
About
●
About me
– CTO at Scotas.com
– Founder of the ArOUG
– ACE Member since 2006
– Open Source Developer (DBPrism/ DBPr...
www.scotas.com
Agenda
– Database resident JVM
– History of the JVM implementation
– Multitenant Architecture
●
Process
●
S...
Database resident JVM time-line
●
8i (1999, JDK1.2, JSP, ORB, NCOMP)
●
9i (2001, JDK 1.3, NCOMP)
●
10g (2003 R1, 2005 R2, ...
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
● Classe...
Oracle’s Commitment to OJVM
●
Used by a growing number of database customers acording
to Oracle
●
Used by Oracle Component...
●
Many among Fortune 500 companies
●
Some examples from
“Java in the Oracle Database @ Work – Customer Case Studies”
●
And...
Java in the Database: What For
www.scotas.com
● Trigger-based Notification System using
RMI
● Secure Credit-Card Processin...
Multitenant Architecture - Process
www.scotas.com
Multitenant Architecture - Storage
www.scotas.com
Multitenant resources
www.scotas.com
● Process
– CPU
– Memory
● Filesystem
● Network
Process - CPU resources
www.scotas.com
● Estimate CPU usage by OJVM
– Process connected using shared servers
– Process con...
Process - Memory resources
www.scotas.com
● Estimate memory usage by OJVM
– SGA/UGA used by dedicated or shared server
pro...
Filesystem resources
www.scotas.com
● Logging
– $ORACLE_HOME/javavm/lib/logging.properties
● Accesing to files
– dbms_java...
Network resources
www.scotas.com
● ACLs
– DBMS_NETWORK_ACL_ADMIN
● Protocol handlers (XMLDB)
– dbms_xdb.setFtpPort
– dbms_...
Network resources
www.scotas.com
● ACLs
– DBMS_NETWORK_ACL_ADMIN
● Protocol handlers (XMLDB)
– dbms_xdb.setFtpPort
– dbms_...
Deployments best practices
www.scotas.com
● CDB/PDBs
● Patching
● Application segmentation
Examples - Scotas OLS
www.scotas.com
●
An Embedded version of Solr Framework running inside Oracle JVM
●
42 new Java Class...
Examples – Scotas OLS in action
www.scotas.com
Examples – Scotas OLS in action
www.scotas.com
Conclusions
●
Multitenant is about isolating data
●
OS resources are shared
– Is very important take this into account
●
A...
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
Upcoming SlideShare
Loading in...5
×

The impact of MultiTenant Architecture in the develop of Java within the RDBMS

274
-1

Published on

The development of database residente Java applications has an impact with the new multitenant architecture, more specifically the CBD / PDBs concepts.This session will cover details like the use of common operating system resources such as sockets, file system, logging and others, and RDBMS common resources like JIT, jobs scheduler and so on.Also some best practices to solve tipicall pitfalls and guidelines for development and deployment.

Published in: Software, Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
274
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The impact of MultiTenant Architecture in the develop of Java within the RDBMS

  1. 1. Experiences with Evangelizing Java Within the Database The impact of MultiTenant Architecture in the develop of Java within the RDBMS The impact of MultiTenant Architecture in the develop of Java within the RDBMS
  2. 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. 3. www.scotas.com Agenda – Database resident JVM – History of the JVM implementation – Multitenant Architecture ● Process ● Storage ● OS resources – Conclusion
  4. 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. 5. Database resident JVM architecture www.scotas.com Components
  6. 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. 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. 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. 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. 10. Multitenant Architecture - Process www.scotas.com
  11. 11. Multitenant Architecture - Storage www.scotas.com
  12. 12. Multitenant resources www.scotas.com ● Process – CPU – Memory ● Filesystem ● Network
  13. 13. Process - CPU resources www.scotas.com ● Estimate CPU usage by OJVM – Process connected using shared servers – Process connected using dedicted servers – Jobs process – AQ process implemented in Java ● DBMS Resource Manager – CPU Caging ● Dedicated plan for each PDBs – Shares – % CPU – % Parallel Servers ● Dedicated plan for Jobs process
  14. 14. Process - Memory resources www.scotas.com ● Estimate memory usage by OJVM – SGA/UGA used by dedicated or shared server process – Jobs process count as dedicated process – Look for global parameters: ● memory_target ● memory_max_target ● shared_pool_size (8Kb x load class) ● java_pool_size (during executing) ● java_soft_sessionspace_limit (soft limit, warning msg) ● java_max_sessionspace_limit (hard limit, default 4Gb) ● Fine tunning using JMX monitoring
  15. 15. Filesystem resources www.scotas.com ● Logging – $ORACLE_HOME/javavm/lib/logging.properties ● Accesing to files – dbms_java.grant_permission ● Properties files – $ORACLE_HOME/javavm/lib/management/jmxremote.access – $ORACLE_HOME/javavm/lib/management/management.properties ● Trace files (Diag. directory) – alert_orcl.log – orcl_jnnn.trc ● Tablespaces/Datafiles ● JDK version per CDB 1.6/1.7 ● IO metrics (Max. IOPS) – dbms_resource_manager.calibrate_io
  16. 16. Network resources www.scotas.com ● ACLs – DBMS_NETWORK_ACL_ADMIN ● Protocol handlers (XMLDB) – dbms_xdb.setFtpPort – dbms_xdb.setHttpPort ● Security – dbms_java.grant_permission
  17. 17. Network resources www.scotas.com ● ACLs – DBMS_NETWORK_ACL_ADMIN ● Protocol handlers (XMLDB) – dbms_xdb.setFtpPort – dbms_xdb.setHttpPort ● Security – dbms_java.grant_permission
  18. 18. Deployments best practices www.scotas.com ● CDB/PDBs ● Patching ● Application segmentation
  19. 19. 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 SIDX_A ON TEST_SOURCE_BIG(TEXT) INDEXTYPE IS LUCENE.SOLRINDEX parameters('DefaultColumn:text_tn;BatchCount:5000;CommitOnSync:false;LockMasterTable:f alse;IncludeMasterColumn:false;Updater:localhost@9099;Searcher:localhost@9099;SyncMod e:OnLine;LogLevel:WARNING;ExtraCols:text "text_tn",line "line_tin", type "type_sn",substr(text,1,256) "title";HighlightColumn:title;MltColumn:title;LobStorageParameters:STORAGE (BUFFER_POOL KEEP) CACHE READS FILESYSTEM_LIKE_LOGGING'); CREATE INDEX SIDX_A ON TEST_SOURCE_BIG(TEXT) INDEXTYPE IS LUCENE.SOLRINDEX parameters('DefaultColumn:text_tn;BatchCount:5000;CommitOnSync:false;LockMasterTable:f alse;IncludeMasterColumn:false;Updater:localhost@9099;Searcher:localhost@9099;SyncMod e:OnLine;LogLevel:WARNING;ExtraCols:text "text_tn",line "line_tin", type "type_sn",substr(text,1,256) "title";HighlightColumn:title;MltColumn:title;LobStorageParameters:STORAGE (BUFFER_POOL KEEP) CACHE READS FILESYSTEM_LIKE_LOGGING');
  20. 20. Examples – Scotas OLS in action www.scotas.com
  21. 21. Examples – Scotas OLS in action www.scotas.com
  22. 22. Conclusions ● Multitenant is about isolating data ● OS resources are shared – Is very important take this into account ● Applications need to be re-tested again ● Data which refers to OS resources need to be updated when plug/unplug PDBs www.scotas.com
  23. 23. Answers! www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085
  24. 24. Thank You! www.scotas.com | info@scotas.com | +1 (650) 704-7915 | 440 North Wolfe Road, Sunnyvale, CA 94085
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×