Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IconUS 2016 conference - Connections Administration Skills

251 views

Published on

Presentation I gave at IconUS 2016 online conference

Published in: Technology
  • Be the first to comment

IconUS 2016 conference - Connections Administration Skills

  1. 1. IBM Connections Administration Keep your Systems Running The Right Way – Learn The Skills and Tricks
  2. 2. Let’s Say Thanks To Our Sponsor! https://www.panagenda.com
  3. 3. Victor Toal aka “Dr. Vic” 20+ Years of talking tech IBM Connections, Sametime, WebSphere, DB2, Notes and Domino victor@toalsys.com Twitter: @TheToal Skype: victor_toal
  4. 4. 4 What We’ll Cover … • The Three Spheres of Administration • IBM WebSphere Administration • IBM Connections - UI based Administration • IBM Connections – the Command Line • Tips, Tricks and Must-Does • Regular Tasks you need to do • Wrap-up/Summary/Questions (you choose)
  5. 5. 5 The Three Spheres of Administration ▪ 1 - IBM WebSphere Administration The IBM Console WebSphere commands – Command line Glory ▪ 2 - IBM Connections - UI based Administration The UI – what can you do as an administrator? ▪ 3 - IBM Connections – the Command Line Wsadmin commands and WebSphere commands - access to the guts of Connections
  6. 6. 6 What We’ll Cover … • The Three Spheres of Administration • IBM WebSphere Administration • IBM Connections - UI based Administration • IBM Connections – the Command Line • Tips, Tricks and Must-Does • Regular Tasks you need to do • Wrap-up/Summary/Questions (you choose)
  7. 7. 7 WebSphere – Lift the Veil of your new Bride …. • What is WebSphere? • The Lingo • The IBM Console • Some WebSphere Resources
  8. 8. 8 ▪ Why WebSphere and What is it? ▪ Simply put – if you want to administrate Connections you need to know WebSphere – it's where it all begins. WebSphere in Lay Terms ▪ WebSphere is both a brand and a technology. The WebSphere brand covers a whole host of technologies that come together to create business solutions. For example, IBM Connections is a business solution -- underneath the covers it uses WebSphere Application Server (WAS), which is a runtime environment that Connections runs on. ▪ WAS provides a bunch of services (called J2EE) that Java applications use. Services like database access, mail services and security services. Without an application WAS does nothing – it has an administration interface but, unlike Domino you can't "do" anything with out of the box without an application. Simply put, WebSphere runs Java (J2EE) programs. WebSphere
  9. 9. 9 ▪ Some WAS Terminology: ▪ Node – an individual system, either physical or virtual ▪ Node Manager – the process controlling the individual node and all servers in all cells, it executes the commands of the Deployment Manager ▪ Profile – a WebSphere entity similar to a node ▪ Application Server – a Java Virtual Machine process ▪ Application – a Java server application ▪ Cluster – a group of Servers, all running the same applications ▪ Cell – an administrative domain of one or more servers ▪ Deployment Manager (DM) – the administration application for a cell WebSphere – The Lingo
  10. 10. 10 How do all these pieces work together? “Multiple Nodes in a Cell run Servers that contain Applications. All pieces are controlled via the Deployment Manager” WebSphere: The short of it ...
  11. 11. 11 ▪ It's your Graphical Interface to control WebSphere ▪ In network deployments the only server running an IBM console is the Deployment Manager ▪ The default administrator for WebSphere is called “wasadmin”, you need that account to administrate through the Console and via the command line ▪ The IBM console runs ONLY on the DM, it is where all administration takes place ▪ The console is what stands between you and a whole bunch of XML and properties files that would would have to edit manually otherwise . . . The IBM Console
  12. 12. 12 ▪ Security comes first ▪ The first thing to do after you set up WebSphere: ▪ Create individual WebSphere administration accounts for all admins and assign them only the roles they need ▪ Synch all the nodes BEFORE you take the next step ▪ Change the wasadmin password and keep it secret …. ▪ Synch the nodes once more ▪ Give each admin only the rights they need …. ▪ Take a backup before doing this, DELETE it after you verified everything works …. Or leave it around forever, just have it when you need it! WebSphere – your first tip ….
  13. 13. 13 ▪ Product Homepage ▪ http://www-01.ibm.com/software/websphere/ ▪ Websphere 8.5 Infocenter ▪ http://www.ibm.com/support/knowledgecenter/SSAW57_8.5.5/as_ditamaps/was855_welcome_ndmp.html ▪ IBM Developerworks – WebSphere ▪ http://www.ibm.com/developerworks/websphere/ ▪ WebSphere Related WIKIS: ▪ https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/public?sort=updated&tag=websphere ▪ Websphere Forums and Community: ▪ http://www.ibm.com/developerworks/websphere/community/ Useful WebSphere Resources
  14. 14. 14 What We’ll Cover … • The Three Spheres of Administration • IBM WebSphere Administration • IBM Connections - UI based Administration • IBM Connections – the Command Line • Tips, Tricks and Must-Does • Regular Tasks you need to do • Wrap-up/Summary/Questions (you choose)
  15. 15. 15 ▪ Being an Admin of Connections Features lets you Homepage ▪ Add/remove Widgets Metrics ▪ Review global system Metrics Blogs ▪ Basic settings, theme settings, administrate individual users' blogs Communities ▪ Add sources to catalog crawler IBM Connections – The UI
  16. 16. 16 ▪ ….. continued Activities ▪ Access to public trash Mobile / MobileAdmin ▪ Access via https://<connectionsurl>/mobileAdmin/login ▪ Devise security, settings, users, wipe commands, WIKIS ▪ Some special rights in individual WIKIS, even those you do not own (version control, etc.) IBM Connections – The UI
  17. 17. 17 What We’ll Cover … • The Three Spheres of Administration • IBM WebSphere Administration • IBM Connections - UI based Administration • IBM Connections – the Command Line • Tips, Tricks and Must-Does • Regular Tasks you need to do • Wrap-up/Summary/Questions (you choose)
  18. 18. 18 Command Line Commands come in two Flavors: wsadmin commands ▪ Works through WebSphere with Connections internal data and settings WebSphere Command Line tools ▪ Works with WebSphere settings and capabilities, not directly related to Connections data – mainly batch files IBM Connections – the Command Line
  19. 19. 19 wsadmin – what is it? ▪ A command shell to administrate aspects of a WebSphere Application Server Cell ▪ Can invoked to execute scripts written in JACL or JYTHON ▪ Can execute almost all actions of the IBM Console and many that the console is not able to ▪ We will concentrate on Connections specific wsadmin commands today ▪ Note: ALLWAYS execute wsadmin commands on the Deployment Manager (DM) and only in the DM's /bin directory – be careful if you run a managed node on the same server as the DM! Command Line - wsadmin
  20. 20. 20 You have three options how to initiate wsadmin and call Jython scripts to then execute a Connections Commands: 3-Steps: By The Book / WIKI: ▪ ") ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -port 8879 ▪ execfile ("connectionsConfig.py") ▪ LCConfigService.checkOutConfig("/opt/IBM/connectexport/xml","vthome302Cell01 2-Steps: Launch a Profile: ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile connectionsConfig.py ▪ LCConfigService.checkOutConfig("/opt/IBM/connectexport/xml","vthome302Cell01") wsadmin recap – choose how you want to run it
  21. 21. 21 1-Step: The “All-in-One” Option ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile connectionsConfig.py -c "LCConfigService.checkOutConfig('/opt/IBM/connectexport/xml','vthome302Cell0 1')" Wsadmin recap … continued This is the option you want to use to create batch files and scripts to chain wsadmin commands! Note: Sometimes you have to experiment with the order of the [“] and ['] in the command. Also depends on the OS you run it on
  22. 22. 22 What We’ll Cover … • The Three Spheres of Administration • IBM WebSphere Administration • IBM Connections - UI based Administration • IBM Connections – the Command Line • Tips, Tricks and Must-Does • Regular Tasks you need to do • Wrap-up/Summary/Questions (you choose)
  23. 23. 23 ▪ Dr. Vic's basic rules - 'Thou Shalt': ▪ Create separate IBM console admins accounts for all staff - INCLUDING YOURSELF (covered earlier) – Keep the wasadmin account separate and don't mess with it. ▪ All wsadmin commands MUST be run on the DM, or they will not work and will create allot of errors ▪ Learn command line basics for WebSphere, do not rely on ONLY the graphical interface, allot of settings cannot be done there or not with the same detailed variables – and sometimes setting “stay behind” ▪ Take frequent back-ups when making system or security level changes, you will regret it otherwise Tips, Tricks and Must-Does … The Beginning
  24. 24. 24 ▪ More of Dr. Vic's rules: ▪ Clean up after yourself and don't litter the WebSphere server with endless variants of back-up’d/saved versions of configuration files. (i.e 'files-config.xml.bak.thisis mysafebackup', etc.) sometimes WebSphere picks them up and you have no clue as to why a change did not work …. and it just looks untidy! Yuck! ▪ Build a test/Dev system – you need a safe place to test changes in. Don't be the “I do all my test on live systems” guy/girl . . . ▪ Keep records of ALL changes you make – even the small ones – you will need to back- track your steps OFTEN 'Thou shalt' … continued
  25. 25. 25 Exporting Connections Configuration Files ▪ DO NOT make a habit of copying/ftp Connections configuration xml files up-and- down from servers – export and then import them ▪ Ensures you always have the CORRECT active version ▪ Import checks for formatting errors and kicks them back at you (important for UNIX environments especially!!) ▪ Makes sure you have a back-up of the ORIGINAL xml files from the install BEFORE you first worked on them … you might need to know what the default setting is at some time. Tips/Tricks – Connections Config Files Another Dr. Vic rule: Allways have an original version backup!
  26. 26. 26 Export command – always have a default location on your DM to export/import files (for me '/opt/IBM/connectexport/xml') Check-out: ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile connectionsConfig.py -c "LCConfigService.checkOutConfig('/opt/IBM/connectexport/xml','vthome302Cell01')" Check-in: ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile connectionsConfig.py -c "LCConfigService.checkInConfig('/opt/IBM/connectexport/xml','vthome302Cell01')“ Alternatively use a text editor that has XML formatting checking built in, such as Notepad++ Connections Config Files … continued
  27. 27. 27 ▪ You need to know this – EAR files are all-mighty ▪ Ear files are not specific to any one WebSphere environment, they can be exported on one environment and imported into another one WITHOUT any problem ▪ Only become environment specific if YOU put specific customizations into it ▪ This is a combination of WAS specific wsadmin commands AND WebSphere native scripts! ▪ The commands contain the path to specific local folders, be sure they exist and DO NOT CHANGE THEM - it is important that all back-ups etc. are contained in one location so you do not have to hunt all over the file system for them. ▪ [ /opt/IBM/connectexport/ear] – my default location to export all ear files to ▪ [/opt/IBM/connectexport/ear/exp-xxx] separate folder for each expanded feature/ear file (create manually if it does not exist) ▪ All commands must be executed wile residing in the DM /bin, otherwise the the wsadmin commands will fail with cryptic errors Import / Export Ear Files
  28. 28. 28 ▪ Example using COMMUNITIES ▪ Export ear file ▪ ./wsadmin.sh -user wasadmin -password **** -c '$AdminApp export Communities /opt/IBM/connectexport/ear/communities.ear' ▪ Expand Ear file (so you can work on it) ▪ ./EARExpander.sh -ear /opt/IBM/connectexport/ear/communities.ear -operationDir /opt/IBM/connectexport/ear/exp-communities -operation expand ▪ Collapse/Repack ear file ▪ ./EARExpander.sh -ear /opt/IBM/connectexport/ear/communities.ear -operationDir /opt/IBM/connectexport/ear/exp-communities -operation collapse ▪ Install / re-import into WAS after change ▪ ./wsadmin.sh -user wasadmin -password **** -c '$AdminApp install /opt/IBM/connectexport/ear/communities.ear {-update -appname Communities}' Import / Export Ear Files … continued
  29. 29. 29 ▪ Sync commands help keep the feature dB user entries synchronized with LDAP / Profiles ▪ Decide on specific days to run them – or whenever user errors appear in the log files … I often run them 1 – 3 times a week ▪ Can be run for each feature individually or as a batch file – I always run batch files and synchronize ALL features ▪ Note: not all features have individual synch commands as several features share databases (News, Homepage, etc.) ▪ If you have clustered WebSphere servers that are all running, you will need to be there to respond to the system prompts! ▪ Different ways of synchronizing are possible – review the batch files in the end of the presentation Sync Features with LDAP / Profiles
  30. 30. 30 Example how to synch Communities Users with Profiles ▪ wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMemberExtIds()“ ▪ wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ Run all commands one after another, but leave some time between them – and then run them all once more! ▪ Do not run the commands simultaneously on separate cluster members → BIG PROBLEM! ▪ Create batch files and run them to avoid the tedious copy-and-paste Sync Features … continued
  31. 31. 31 ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile filesAdmin.py -c "FilesMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile activitiesAdmin.py -c "ActivitiesMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile blogsAdmin.py -c "BlogsMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile dogearAdmin.py -c "DogearMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile forumsAdmin.py -c "ForumsMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile newsAdmin.py -c "NewsMemberService.syncAllMemberExtIds()“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile wikisAdmin.py -c "WikisMemberService.syncAllMemberExtIds()" Sync Features … Syncscript 1
  32. 32. 32 ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile wikisAdmin.py -c "WikisMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile newsAdmin.py -c "NewsMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile forumsAdmin.py -c "ForumsMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile filesAdmin.py -c "FilesMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile dogearAdmin.py -c "DogearMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile blogsAdmin.py -c "BlogsMemberService.syncAllMemberExtIds({'allowInactivate':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile activitiesAdmin.py -c "ActivitiesMemberService.syncAllMemberExtIds({'allowInactivate':'true'})" Sync Features … Syncscript 2
  33. 33. 33 ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile wikisAdmin.py -c "WikisMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile newsAdmin.py -c "NewsMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile forumsAdmin.py -c "ForumsMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile filesAdmin.py -c "FilesMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile communitiesAdmin.py -c "CommunitiesMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile dogearAdmin.py -c "DogearMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile blogsAdmin.py -c "BlogsMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})“ ▪ call wsadmin.bat -lang jython -user wasadmin -password ***** -profile activitiesAdmin.py -c "ActivitiesMemberService.syncAllMembersByExtId({'updateOnEmailLoginMatch':'true'})" Sync Features … Syncscript 3
  34. 34. 34 When the synch command in the GUI just do not appear to get the job done ... ./syncNode.sh [IP or FQHN] 8879 -conntype SOAP -username wasadmin -password **** syncNode.bat [IP or FQHN] 8879 -conntype SOAP -username wasadmin -password **** ▪ Replace the [IP or FQHN] with either an IP or a fully qualified DNS name – do not include the square brackets ▪ Requires the Nodemanager to be stopped, but the DM MUST be running ▪ If the node and DM share the same physical server you can enter LOCALAHOST as an address ▪ Remove all files in the /opt/IBM/WebSphere/Appserver/profiles/AppServ01/wstemp first Command Line Node Syncronization
  35. 35. 35 ▪ All Features have scheduled tasks that update data or run clean-ups ▪ Clear these lists when actions are not happening or if you see issues with upgrades ▪ They are recreated the next time the feature is restarted Tip1: I remove ALL scheduled tasks prior to ANY iFix installs or CR upgrades Tip2: If you are upgrading Connections to a new version, remove all tasks prior to shutting down for the dB migration. Run it once more AFTER starting the upgraded system and restart your system once more. Scheduled Tasks
  36. 36. 36 Initialize wsadmin and call the Connections config script: ▪ ./wsadmin.sh -lang jython -user wasadmin -password ***** -port 8879 ▪ execfile ("connectionsConfig.py") List all Scheduled Tasks: ▪ Scheduler.listAllTasks() Clear all Scheduled Tasks: ▪ Scheduler.clearAllTasks() Scheduled Tasks … continued You can delete the tasks while your servers Are running, just restart the clusters to Recreate the tasks
  37. 37. 37 Nodemanager commands Stop Nodemanager AND all running servers simultaneously ▪ ./stopNode.sh -stopservers -username wasadmin -password **** Check status of ALL servers (incl. DM and nodemanagers) ▪ ./serverStatus.sh -all -username wasadmin -password **** Check status of a single server (incl. DM or nodemanagers) ▪ ./serverStatus.sh [servername] -username wasadmin -password **** WebSphere Server command line utilties
  38. 38. 38 ▪ Now something JUST for Windows ▪ WASServicecmd.exe is a front-end utility for the native WebSphere WASServcice.exe ▪ It can add AND remove WebSphere servers/nodemanagers/DMs as Windows services Add a WAS Service to Windows – the quick way http://www-01.ibm.com/support/docview.wss?uid=swg21397335 Best practices suggests NOT to add Servers, but only nodemanagers and the DM as a service!
  39. 39. 39 Update / Change Profiles data ▪ /wsadmin.sh -lang jython -user wasadmin -password **** -profile profilesAdmin.py Edit BACKGROUND data in Profile ▪ ProfilesService.updateExperience("ann_jones@company.com","This is new text that will be entered into the Background field for Ann.“) Edit "ABOUT ME" data of Profile: ▪ ProfilesService.updateDescription("ann_jones@company.com","This is new text that will be entered into the About Me tab for Ann.") Delete Photo in Profile ▪ ProfilesService.deletePhoto("john_doe@company.com") Lets change some Connections data . . . .
  40. 40. 40 Update / Change Communities data ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile communitiesAdmin.py Change name of a Community ▪ CommunitiesService.updateCommunityName("Community NAME or UUID", "New Name") Edit "Description" of Community Profile: ▪ CommunitiesService.updateCommunityDescription("Community NAME or UUID", "New description.") Delete Bookmarks in Community ▪ This requires a two step process: ▪ removeurl= ["http://valid1.url.com", "http://valid2.url.com", "http://valid3.url.com"] ▪ CommunitiesService.removeReferencesByUri("Community NAME or UUID",removeurl) Changing more Connections data . . . .
  41. 41. 41 Update / Change BLOGS data ▪ /wsadmin.sh -lang jython -user wasadmin -password **** -profile profilesAdmin.py Edit Blog handle ▪ BlogsAdminService.renameWeblogHandle("<old_handle>", "<new_handle>") Change the URL or blogs (system wide): ▪ This is necessary if you change the base URL of the Connections system ▪ BlogsAdminService.fixBrokenUrls(<replacePattern>, <replaceValue>) Lets change some Connections data . . . .
  42. 42. 42 ▪ Report on Libraries … all them files!! Get list of all orphaned personal file libraries: ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesPrintService.saveToFile(FilesLibraryService.browsePersonalOrphan("size", "false", 1, 100000), "/opt/IBM/PersonalLibraries-Orphans.csv")' List of All Community Libraries ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesPrintService.saveToFile(FilesLibraryService.browseCommunity("size", "false", 1, 100000), "/opt/IBM/CommunityLibraries.csv")' Lets Report on some settings and data . . . .
  43. 43. 43 ▪ Report on Libraries … more and more List of All User Libraries ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesPrintService.saveToFile(FilesLibraryService.browsePersonal("size", "false", 1, 100000), "/opt/IBM/PersonalLibraries.csv")' List of File/Libraries Policies ▪ ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesPrintService.saveToFile(FilesPolicyService.browse("title", "true", 1, 25),"/opt/IBM/LibraryPolicies.csv")' Lets Report on some settings and data . . . . continued
  44. 44. 44 Find and move all orphaned files to a separate location ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesDataIntegrityService.checkFiles("/opt/IBM/files_orphaned")' This can happen after dB crashes or Connections server failures – or after a migration. You will have to review the files manually and “just figure it out” Files … do you have Orphans?
  45. 45. 45 List all your Library Policies – personal and community based ./wsadmin.sh -lang jython -user wasadmin -password **** -profile filesAdmin.py -c 'FilesPrintService.saveToFile(FilesPolicyService.browse("title", "true", 1, 25),"/opt/IBM/LibraryPolicies.csv")' Or display it in the console wsadmin>FilesPolicyService.browse("title", "true", 1, 25) [{maximumSize=2147483648, title=!Default for Community Files, id=00000000-0000-0000-0000-000000000001}, {maximumSize=524288000, title=!Default for Community Wikis, id=00000000-0000-0000-0000-000000000003}, {maximumSize=524288000, title=!Default for Non-Community Wikis, id=00000000-0000-0000-0000-000000000002}, {maximumSize=10737418240, title=!Default for Personal Files, id=00000000-0000-0000-0000-000000000000}] Files … What are your Policies for Libraries?
  46. 46. Optimize DB2 Configuration ▪ The IBM Connections Wizard will create all the databases for you, alternatively you can create them manually using the scripts included in the wizard subfolders ▪ But to have an optimally functioning DB2 server that supports online back-up with automatic retention/removal of old back-ups, minimizes i/o and “Just works better” you need to go beyond the base setup.
  47. 47. DB2 Maintenance ▪ DB2 requires regular RUNSTATS and REORGS to be run to rebuild and optimize tables spaces and indexes. ▪ IBM supplies the base runstat/reorg sql files with the dB wizard, but only for the core feature databases (Profiles, Communities, etc.). If you have other applications (DOCS, Surveys, CCM, third party application dBs etc.) then there are no special sql command files for them. ▪ You can use the script on the next page to run: runstat – reorg – runstat (in that order!!) for ANY DB2 database YOU HAVE TO SHUT DOWN CONNECTIONS TO DO THIS! NO DB ACCESS IS ALLOWED
  48. 48. DB2 Maintenance Log into the DB2 server as the db2admin and open an Administrator Command Prompt: db2 connect to [database name] db2 -x "SELECT 'RUNSTATS ON TABLE ' || TRIM(TABSCHEMA) || '.' || TRIM(TABNAME) || ' AND INDEXES ALL;' FROM SYSCAT.TABLES WHERE TYPE = 'T' AND TABSCHEMA NOT LIKE 'SYS%' ORDER BY TABSCHEMA, TABNAME" > db2_runstats.sql.out db2 -tvf db2_runstats.sql.out db2 -x "SELECT 'REORG TABLE ' || TRIM(TABSCHEMA) || '.' || TRIM(TABNAME) || ';' FROM SYSCAT.TABLES WHERE TYPE = 'T' AND TABSCHEMA NOT LIKE 'SYS%' ORDER BY TABSCHEMA, TABNAME" > db2_reorg.sql.out db2 -tvf db2_reorg.sql.out db2 -tvf db2_runstats.sql.out
  49. 49. DB2 Maintenance ▪ Like any database system, DB2 will accumulate whitespace and that needs reclaiming to regain disk space and make the dB run faster and more efficiently ▪ This is most important for the HOMEPAGE database, but also PEOPLEDB and ACTIVIES and BLOGS can really benefit from it ▪ Not all types of tablespaces are reclaimable, you will experience errors when trying to reclaim space in some databases s– that is normal, temp tablespace and system tablespaces are not made to be reclaimed ▪ It is a multistep process, commands to follow …. YOU HAVE TO SHUT DOWN CONNECTIONS TO DO THIS! NO DB ACCESS IS ALLOWED
  50. 50. DB2 Maintenance Start a DB2 command line and connect to HOMAPAGE connect to HOMEPAGE Lower the High Water Mark ALTER TABLESPACE BOARD16TABSPACE LOWER HIGH WATER MARK ALTER TABLESPACE BRD32TABSPACE LOWER HIGH WATER MARK ALTER TABLESPACE HOMEPAGETABSPACE LOWER HIGH WATER MARK ALTER TABLESPACE HPNT16TABSPACE LOWER HIGH WATER MARK ALTER TABLESPACE NEWS4TABSPACE LOWER HIGH WATER MARK ALTER TABLESPACE NEWSTABSPACE LOWER HIGH WATER MARK
  51. 51. DB2 Maintenance Review the Reclaimable Tablespace output, you need that number to then actually reclaim the space in the third step. Run each command individually and note the TBSP_RECLAIMABLE_MB number select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('BOARD16TABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('BRD32TABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('HOMEPAGETABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('HPNT16TABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('NEWS32TABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('NEWS4TABSPACE', NULL)) select tbsp_name, tbsp_free_pages, tbsp_page_size * tbsp_free_pages /1024 / 1024 AS tbsp_reclaimable_mb from table(MON_GET_TABLESPACE('NEWSTABSPACE', NULL))
  52. 52. DB2 Maintenance ▪ The results of that command will look something like this: TBSP_NAME TBSP_FREE_PAGES TBSP_RECLAIMABLE_MB ------------------------------------------------------------------------------- -------------------- -------------------- BOARD16TABSPACE 11584 181
  53. 53. DB2 Maintenance ▪ Substitute the ### with the reclaimable MB number (minus some MB for overhead) and execute the command ALTER TABLESPACE BOARD16TABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE BRD32TABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE HOMEPAGETABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE HPNT16TABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE NEWS32TABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE NEWS4TABSPACE REDUCE (ALL CONTAINERS ### M) ALTER TABLESPACE NEWSTABSPACE REDUCE (ALL CONTAINERS ### M)
  54. 54. DB2 additional DB Configuration ▪ LOGARCHMETH1 – archival logging, allows online backups ▪ LOGARCHCOMPR1 – archive log compression ▪ auto_del_rec_obj – auto deletion of recovery objects ▪ rec_his_retentn – recovery history retention period ▪ num_db_backups – number of back-ups retained These settings impact each other and are dependent on each other - they need to be adjusted correctly or they will not give you the expected results
  55. 55. Typical Database Setting And Backup ▪ db2 update db cfg for BLOGS using LOGARCHMETH1 disk:D:DB2-Logging ▪ db2 update db cfg for BLOGS using auto_del_rec_obj ON ▪ db2 update db cfg for BLOGS using rec_his_retentn ▪ db2 15update db cfg for BLOGS using num_db_backups 3 ▪ Db2 update db cfg for BLOGS using LOGARCHCOMPR1 on ▪ update db cfg for BLOGS using LOGFILSIZ 8196 ▪ Turn on db2 archival logging and write the log files to the folder [D:DB2-Logging] ▪ Turn on automatic log file deletion ▪ Turn on automatic log file retention ▪ Retain the last 15 days of log files (and then auto- delete), retain the last 3 back-ups (and then auto- delete), ▪ Compress any archived log files. ▪ Configure log files to be 8 MB large (default is 4 MB) Now all you have to do is to run regular (=min. 1/day!) online db2 back-ups and then do a file level back up the back-ups and db2 log files
  56. 56. System Logs Review ▪ We all hate it … but we have to do it if we want to catch stuff. ▪ If you can, get a log file aggregator tool – here you can look at and search all log files of all your systems simultaneously. ▪ Paid Product: SPLUNK ▪ Open Source: ELK ▪ You can also bring in logs from Domino, Windows, other OS files, router and FW logs …
  57. 57. Logs Review ▪ What are the files you need to look at? WebSphere:SystemOut.log ▪ [WASinstall]profiles[profilename]logs[servername]SystemOut.log ▪ Example: ▪ D:IBMWebSphereAppServerprofilesAppSrv01logsAppCluster_Server1SystemOut.log – xxx.trace.log, etc. ▪ /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/AppCluster_Server1/SystemOut.log – trace.log, etc. DB2: db2diag.log ▪ Example: C:ProgramDataIBMDB2DB2COPY1DB2DIAG0000db2diag.log
  58. 58. Logs Review ▪ Other important logs: TDI Sync logs ▪ Require frequent review to find accounts that are not syncing or are giving you errors ▪ Changes to LDAP or data in them can cause the synchronization for large numbers of users to stop: ▪ employee.updates, employee.adds, employee.delete, employee.error, employee.skip .. ▪ Most important: logsibmdi.log ▪ Will give you the most info on WHY things went bad. Is very large …..
  59. 59. 59 ▪ My Blog: ▪ http://notesbusters.com ▪ Great WebSphere resource / Blog: Steve Robinson ▪ http://www.themiddlewareshop.com ▪ WebSphere WIKI ▪ http://www.bertucci.org Additional Resources

×