Your SlideShare is downloading. ×
Let me introduce you: DOTS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Let me introduce you: DOTS

965

Published on

Entwicklercamp 2013

Entwicklercamp 2013

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Let me introduce you: DOTS Frank van der Linden
  • 2. Frank van der Linden & e-office @flinden68 http://www.domino-weblog.nl nl.linkedin.com/in/flinden68 fli@e-office.com
  • 3. Roadmap• Introduction• What is DOTS• Setup your environment• My first DOTS tasklet• Debug my first DOTS tasklet• Deploy your tasklet• Tips and tricks
  • 4. Introduction
  • 5. Introduction of OSGi• Open Services Gateway initiative – Started in 1999 – Still improved – module system and service platform• OSGi bundles – Can be installed remotely. – No reboot required – Lifecycle
  • 6. Introduction of OSGi• OSGi and IBM Notes/Domino – Since 8.5.2 9+ – Extension points – Extension Library – DOTS (Domino OSGi Tasklet Service) – OpenSocial Container 8.5.3 8.5.2
  • 7. Introduction to DOTS• Domino OSGi Tasklet Service – Easy development – Outside in Eclipse IDE – Tasklets can run: scheduled, manual• Next generation agents for Domino• OpenNTF project by IBM since April, 2011 (replaced JAVADDIN project)• Included in IBM Domino 9 Social Edition
  • 8. Introduction to DOTS
  • 9. Introduction to DOTS• DOTS Tasklets outperforms over Java Agents! AMGR Prepare JVM Load Agent Java Agent: launches a Initializes Java and JNI Bytecode Run! Thread interfaces DOTS tasklet: Everything is ready to run Run!> tell amgr run "testXPagescrash.nsf" LongJobAgent09.11.2012 19:38:39 JVM: Java Virtual Machine initialized.09.11.2012 19:38:39 AMgr: Start executing agent LongJobAgent in testXPagescrash.nsf09.11.2012 19:38:39 Agent Manager: Agent printing: 18134909.11.2012 19:41:02 Agent Manager: Agent printing: 222709.11.2012 19:41:02 Agent Manager: Agent printing: Finished in 143 secs... -09.11.2012 19:41:02 AMgr: Agent LongJobAgent in testXPagescrash.nsf completed execution > load dots > Listening for transport dt_socket at address: 8001 09.11.2012 19:42:40 Domino OSGi Tasklet Container started ( profile DOTS ) > 181349 > 2227 09.11.2012 19:43:22 [DOTS] (annotated) Finished in 41 secs...
  • 10. Introduction to DOTS• DOTS versus Agents – AMGR is old and complicated – Range • Agents are database depended • DOTS run server wide – DOTS are more flexible • Precise timing
  • 11. Setup your environment
  • 12. Setup your environment• DOTS should be installed into IBM Domino server – For IBM Domino 9 Social Edition Public Beta, you don’t need to do anything. – For versions 8.5.2 and 8.5.3, • Download DOTS package from OpenNTF • You will also need some Eclipse plugins from Eclipse 3.6.2+
  • 13. Setup your environment• Create some folders inside your Domino folder – [Domino Program Files]osgi-dotsrcpeclipseplugins – [Domino Program Files]osgi-dotssharedeclipseplugins• Copy files from Eclipse install directory These plugins will be copied from Eclipse installation [Eclipse]plugins
  • 14. Setup your environment• The DOTS package contains the executables – The jar files in the newly created directories – The executables in the Domino program directory Copy to [Domino]osgi-dotssharedeclipseplugins Copy to [Domino]osgi-dots
  • 15. Setup your environment• The DOTS package contains the executables – The jar files in the newly created directories – The executables in the Domino program directory Copy to [Domino]osgi-dotssharedeclipseplugins Copy to [Domino]osgi-dots
  • 16. Setup your environment• Download Eclipse – http://www.eclipse.org/downloads – Eclipse >3.6.2(Eclipse IDE for Java EE Developers)• Download projects from OpenNTF – Domino Debug Plug-in from XPages SDK for Eclipse RCP: http://tiny.cc/XPagesSDK
  • 17. Setup the Domino Debug Plugin• Accept all next steps• Restart Eclipse
  • 18. Setup the Domino Debug Plugin• Check Preferences,if Domino Debug Plugin is installed
  • 19. Setup the target platform [Domino Program Files]osgi-dotsrcpeclipse [Domino Program Files]osgi-dotsrcpeclipse
  • 20. Setup the Notes Java Api reference
  • 21. My first DOTS tasklet
  • 22. My First DOTS tasklet• Create a new Plug-in Project – File  New  Plug-in Project
  • 23. My First DOTS tasklet• Prepare the DOTS extensions
  • 24. My First DOTS tasklet• Import DOTS extensions – Deselect «Show only extension points from the required plug-ins» – Find & pick «com.ibm.dots.task» extension from the list – Correct the warning in the Manifest.mf tab, then Save & Close Manifest view.
  • 25. My First DOTS tasklet• Import Domino package
  • 26. My First DOTS tasklet• Create the Java class
  • 27. My First DOTS tasklet• Add some code
  • 28. My First DOTS tasklet• Modify the plugin.xml name of the class tasklet id
  • 29. My First DOTS tasklet• Now we can run our tasklet• DOTS will run on the Domino server• There are two ways to run from Eclipse IDE – Run – Run and debug
  • 30. My First DOTS tasklet• Create a “run configuration”
  • 31. My First DOTS tasklet• PDE Configuration file should be created, the first time• PDE file is created in the dots workspace
  • 32. My First DOTS tasklet• Now, lets run the tasklet
  • 33. Debug a DOTS tasklet• Stop DOTS task – Tell dots quit• Adding debug parameters to notes.ini – DOTS_DEBUGADDRESS=8001 – DOTS_DEBUGSUSPEND=y• Reload DOTS task – Load dots – Dots task will start only when debugger connects
  • 34. Debug my first DOTS tasklet• Server needs to know what to debug
  • 35. Debug my first DOTS tasklet• Adding breakpoint to debug the code
  • 36. Debug my first DOTS tasklet• Some tips – Schedule tasks – OSGi allows you to refresh bundles without restart, here is how: • Find out the «bundle-id» for the plug-in • Refresh the bundle
  • 37. Debug my first DOTS tasklet • More tips...Annotations – Annotations is supported in DOTS. – Powerfull way of specify for each method, what to do@RunOnStartpublic void runOnStart( IProgressMonitor monitor ){ logMessage("Annotated onStart method");}@Run( id="manual")public void runManual( String[] args, IProgressMonitor monitor ){ logMessage("Annotated run method with id=manual");}@RunOnStart@RunEvery( every=60, unit=RunUnit.second )@HungPossibleAfter( timeInMinutes=1 )public void runEvery60seconds( IProgressMonitor monitor ){ logMessage( "Called from annotated method every 60 seconds");}
  • 38. Deploy your tasklet
  • 39. Deploy your tasklet• DOTS plugins can be deployed as OSGi bundle – As jar file in OSGi plugins folder – As update site• Disable debug parameters – Delete PDE runtime configuration (pde.launch.ini) – Disable suspend feature in debugging (DOTS_DEBUGSUSPEND)
  • 40. Deploy your tasklet• Create a jar file from the plugin • Right Click  Export  Deployable plug-ins and fragments...
  • 41. Deploy your tasklet• Select the plugin and destination• Place exported JAR file into plugins folder, then restart DOTS task [Domino Program Files]osgi-dotssharedeclipseplugins
  • 42. Deploy your Tasklet• Another deploy method, DOTS profiles – It can stored inside a Notes database – Can run in is own profile container – With his own security settings – Can started seperatly “tell profilename run abc”
  • 43. Deploy your Tasklet• Creating Profile Repository as NSF – Create an empty nsf, set ACL – Configure DOTS to use profiles database • tell dots quit • set config OSGI_CONFIGURATION_DB=dotsprofiles.nsf • load dots • tell dots profileCreate dots – DOTS profile is created – You can import an updatesite in the profile
  • 44. Deploy your Tasklet• Create a Feature project in Eclipse
  • 45. Deploy your Tasklet• Create the update site project in Eclipse
  • 46. Deploy your Tasklet• Build the update site project
  • 47. Deploy your Tasklet• Create an Update Site Database
  • 48. Deploy your Tasklet• Open OSGi profile db – Add update site database into Sites section• Restart DOTS task
  • 49. Tips and tricks
  • 50. Multiple profiles• You may create more than one profiles. – For testing – Tasklets that you use occasionally – Tasklets with different security needs – Heavily loaded Tasklets
  • 51. Life-cycle for a scheduled Tasklet• When a tasklet runs on schedule, DOTS class loader will create an instance from your tasklet class. This instance will not be disposed until DOTS process stops.
  • 52. Multiple purpose Tasklet• Same Tasklet, different Java instances• In multiple scheduled runs – persistent objects, stays in memory• In multiple manual runs – unloaded from memory afterwards
  • 53. Tips and tricks• Logging – Try not to use System.out.println. (No output to log.nsf) – Instead, use logMessage(...) and Vector<?> views = db.getViews(); logException(...) monitor.beginTask( "List the views", views.size() ); Init with # of steps• Progress Monitoring for ( Object view : views ){ if ( monitor.isCanceled() ){ break;  – IProgressMonitor monitor Break if canceled. } logMessage("t" + argument passed on tasklet ((View)view).getName() ); try { Thread.sleep( 1000 methods. ); { } catch (InterruptedException e) – Very useful for tasklets running e.printStackTrace(); } monitor.worked( 1 ); long time. completed  One step }
  • 54. Questions
  • 55. Contact details @flinden68 http://www.domino-weblog.nl nl.linkedin.com/in/flinden68 fli@e-office.com

×