May 13, 2017

ADF και EJB timers

Είναι εξαιρετικά εύκολο να χρονοπρογραμματίσουμε την εκτέλεση μιας ADF BC μεθόδου χρησιμοποιώντας EJB timers. Ας ξεκινήσουμε με την υλοποίηση των μεθόδων σε ένα Application Module τις οποίες ορίζουμε στο client interface. Στο παράδειγμα μας δυο μέθοδοι, exportData και uploadData που εκτελούνται σε τακτικά χρονικά διαστήματα.
Σε ένα νέο JDeveloper project (πχ ονόματι tasks) ενσωματώνουμε τις κατάλληλες maven εξαρτήσεις για τo JEE και το ADF όπως:

  <dependency>
      <groupId>com.oracle.adf.library</groupId>
      <artifactId>Java-EE</artifactId>
      <version>12.2.1-1-0</version>
      <type>pom</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.oracle.adf.library</groupId>
      <artifactId>EJB</artifactId>
      <version>12.2.1-1-0</version>
      <type>pom</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.oracle.adf.library</groupId>
      <artifactId>ADF-Common-Runtime</artifactId>
      <version>12.2.1-1-0</version>
      <type>pom</type>
      <scope>provided</scope>
    </dependency>

Απαραίτητο είναι επίσης να ορίσουμε και το maven dependency για το model project μας. Φτιάχνουμε τώρα μια java κλάση που καλεί την διαδικασία exportData. Χρησιμοποιούμε το Schedule annotation για τον χρονοπρογραμματισμό ενώ κάνουμε μια απλή σύνδεση στο Application module για να καλέσουμε την μέθοδο που θέλουμε από το client interface.

Το παράδειγμα δοκιμάστηκε σε JDeveloper 12.2.1.1.0.

Apr 21, 2017

Συμβουλές για JMeter και ADF 12c

O καλύτερος τρόπος να ξεκινήσει κανείς σενάρια performance testing με το JMeter σε εφαρμογές ADF, είναι να χρησιμοποιήσει το test plan από εδώ, να το διαμορφώσει σε ένα test fragment και να το αξιοποιήσει σε περαιτέρω πλάνα. Επιπλέον συμβουλές που δοκιμάστηκαν σε ADF 12.2.1.2.0 :


  • Όπως αναφέρεται και στο soadev blog ο resolver για το _afrLoop έχει την μορφή: _afrLoop',\s*'([0-9]{13,16})
  • Για πιο αποτελεσματικό recording ADF εφαρμογών μπορούμε να παραλείψουμε αρχεία css, png και js διαμορφώνοντας κατάλληλα τον script recorder
  • Για την καλύτερη οργάνωση των HTTP requests που γίνονται record, είναι προτιμότερο να τα οργανώσουμε ανά transaction controller

  • Τέλος, στη λίστα των patterns to test, ας προσθέσουμε το "Because of inactivity..." επειδή είναι ένα πολύ πιθανό μήνυμα όταν δεν έχει διαμορφωθεί σωστά το σενάριο



Jan 8, 2017

Oracle Fusion Middleware RCU στο Amazon cloud (AWS)

To AWS προσφέρει την υποστήριξη της Oracle Database (Oracle RDS) με παρεχόμενες άδειες και με ειδικά γνωρίσματα όπως:

  • δίνεται λογαριασμός με DBA privileges αλλά δεν παρέχεται πρόσβαση στα SYS και SYSTEM accounts
  • δεν προσφέρεται SSH πρόσβαση στους database servers
  • υποστηρίζονται μόνο Oracle Managed Files (OMF) για datafiles
Περισσότερες πληροφορίες εδώ και εδώ.

Μέσω του Ansible, όταν έτρεξα το RCU για ένα 12.2.1.1.0 domain διόρθωσα ώστε το script ώστε ο database user να μην έχει SYSDBA δικαιώματα (normal user), αλλά πήρα το ακόλουθο λάθος ORA-20900: RDS only supports Oracle Managed Files.

Έχουμε δυο επιλογές:

  • στο RCU script μας παιρνάμε την παράμετρο honorOMF που κατασκευάζει τα datafiles συμβατά με OMF
  • κατασκευάζουμε τα tablespaces μόνοι μας και ξανατρέχουμε το RCU
Πέρα από αυτό, δεν αντιμετώπισα κανένα άλλο πρόβλημα στο να τρέξω μια 12.2.1.1.0 ADF εφαρμογή στο AWS χρησιμοποιώντας είτε Oracle RDS 11.2.0.4 είτε το 12.1.0.2.

Nov 20, 2016

Windows bash shell και γραφικές εφαρμογές X-Server

Μια από τις σημαντικότερες αλλάγες των Windows 10 anniversary update είναι η ενσωμάτωση του Ubuntu bash shell που μας προσφέρει ένα κέλυφος για Linux command-line. Στο ενσωματωμένο Ubuntu 14.04 (και σύντομα 16.04) πέρα από τα τυπικά εργαλεία που μπορούμε να τρέξουμε στο Windows Bash Shell (scripts, vi, awk, grep, κλπ) αλλά και τα πιο εξελιγμένα (πχ Ansible, MySQL) μπορούμε επίσης να έχουμε και εκτέλεση γραφικών εφαρμογών όπως Firefox, glogg, κλπ.

Ειδικά για την τελευταία περίπτωση, νομίζω πως ο πιο απλός τρόπος είναι η χρήση του Mobaxterm, αφού προσφέρει απευθείας έναν X Server για την οθόνη μας. Στις τελευταίες εκδόσεις του Mobaxterm, υπάρχει η επιλογή σύνδεσης του Ubuntu  Bash.


Έτσι, εκτελώντας ένα πρόγραμμα που απαιτεί X-Windows, το Mobaxterm ανακατευθύνει σωστά την γραφική έξοδο στην οθόνη μας.