Tuesday, October 6, 2009

Example OAS App deployment instructions

Installation Instructions Prerequisites: 1. Platform: Oracle Application Server 10.1.3 Oracle RDBMS 10.2.0.4 Database Deployment 1. Open Database folder on CD and follow instructions: a. If deploying to Testing Environment read: \Database\TestingInstructions.txt b. If deploying to Production Environment read: \Database\ProductionInstructions.txt Application Deployment 1. Log in to Oracle Server web interface. 2. If the group "{PROJECT_NAME}_Group" does not exist, create it. a. Go to Cluster Topology and scroll down to Groups list b. Create a new group c. Name the group "{PROJECT_NAME}_Group" d. Click Create 3. If the OC4J Instance for "{PROJECT_NAME}_Home" does not exist, create it. a. Go to Cluster Topology and scroll to Members list b. Click the top level Application Server c. Click Create OC4J Instance d. Set OC4J Instance Name: "{PROJECT_NAME}_Home" e. Add to an existing group "{PROJECT_NAME}_Group" f. Check the box marked "Start instance after creation" g. Click Create h. Ensure the instance has started 4. Create Database Connection a. Select the OC4J instance "{PROJECT_NAME}_Home" b. Select Administration tab, then JDBC Resources from list c. Create Connection Pool i. Under Connection Pool heading click Create ii. Select "default" application from drop down iii. Select New Connection Pool iv. Click Continue v. NAME: {PROJECT_NAME}_CONNECTION_POOL vi. Use default connection factory class vii. JDBC URL: jdbc:oracle:thin:@//{SERVER_NAME}:1521/{SID} viii. USERNAME: {PROJECT_NAME}_APPLICATION_USER ix. PASSWORD: {APPLICATION_USER_PASSWORD} x. Click Finish d. Create Data Source i. Under Data Sources heading click Create ii. Select default application from drop down iii. Select Managed Data Source iv. Click Continue v. NAME: {PROJECT_NAME}_JNDI_CONNECTION vi. JNDI LOCATION: java:/comp/env/jdbc/{PROJECT_NAME}Datasource vii. CONNECTION POOL: {PROJECT_NAME}_CONNECTION_POOL viii. Click Finish 5. Deploy the application a. Go to Cluster Topology and scroll down to Groups list b. Select "{PROJECT_NAME}_Group" c. Select Applications tab d. Select Deploy e. Set Archive Location to path to file on CD at \Deploy\{PROJECT_NAME}_{VERSION}.war f. Click on next g. Ensure that Root context and application name fields are the same h. Click next i. Select Configure Class Loading (the pencil) j. Under Import Shared Libraries ensure the following are unchecked: {Note: list libraries not needed for specific application } {apache.commons.logging} {oracle.toplink} k. Click Ok l. Click Deploy 6. Configure memory allocation a. Go to Cluster Topology b. Select "{PROJECT_NAME}_Home" in the Members list c. Go to the Administration tab d. Select Server Properties e. Set Initial heap size to {MINIMUM_MEMORY}m f. Set Maximum heap size to {MAXIMUM_MEMORY}m g. Click Apply h. Go to Cluster Topology i. Select checkbox next to "{PROJECT_NAME}_Home" in the Members list g. Click Restart 7. Test deployment of application and database connection a. Bring up application login page: b. Attempt to log in. Contact {poc} for user name and password.

Friday, April 25, 2008

Process Notes

Scribble notes here concerning issues, policies, standards, etc to later formalize into something more, well... formal. All existing documentation should be considered "living" and "a-work-in-progress". If you find something that needs fixing, don't ignore it or complain about it -- FIX IT. All deployment packages (scripts, instructions, data, etc) must be in-house reviewed and tested using development test server before signing for turnover! Scripts and instructions need to be consistent and follow template. Template should be starting point and will not cover all nitnoid particulars, but should be at least contain what is common to 80%+ of projects. If it needs updating, then quit gritchin' and update it! Keep tabs on processes as far as what works and what doesn't work so we can develop and document best practices. Complaining and whining is useless unless it comes with suggestions on how to do it better and those suggestions get recorded. The person doing the complaining is the best candidate to document the solution :) Need to have a consensus between all of us, in that we need to have "same story" to tell people on what we do. Too many "this is how we used to do it" -vs- the culture change we are trying to promote -- basically need everyone in our team to be on same page -- BTW: what is it that we do anyhow? Have to find a working balance between the following: Providing continuity for a project. Development teams like having a single point of contact to work with. Not pidgeon-holing people into stove-piped technologies or projects Progress on project tasks and DBA tasks must continue even when a member who is normally responsible for them is "out-of-pocket" Where is the line between what a DBE is responsible for and the project developers are responsible for. Can or should it be described in detail or just in a general guidline? What needs to be done, what we are willing to do, and what our manning and know-how can support. DBA vs DBE Do we want everyone to be jack-of-all trades and do both DBA and DBE tasks? Do we designate certain people to do DBA stuff only or in addition to a lighter DBE load? Do we have a designated "IT" person every week who is responsible for DBA stuff for that week? Have to balance accountability for DBA tasks being accomplished with need to maximize the number of people who can perform them. Need a formal agreement with administrators as far as what level of access and responsibility we have on production servers Need to find a better solution to task tracking than what is in Outlook Definitely need a "leadership dashboard" listing all projects with a rack-and-stack prioritization and some estimate of complexity/effort -- we need this so that we can authoritatively prioritize and balance our workload. What authority says one project is more important than another? This will benefit testing as well. There is no accountabilty for problems with a project and this leads to blamestorming and blamestorming leads to anger, and anger leads to hate, and hate leads to pointing the finger at us. The buck *should* stop with the project manager for the project -- need to campaign for this to be policy.

Wednesday, April 23, 2008

Database Office

Database Engineering Management Assignes DBEs to projects Assignes DBE and DBA tasks Oversees task completion Deals with problems and bottlenecks Sets and enforces policies, standards, operating procedures Establishes goals Database Engineering Quality Assurance (QC) Ensures all products meet standards Ensures templates and procedures are relavent and up to date Reviews and approves deployment packages (instructions, scripts, etc) and Software Turnover Notices Database Administration (DBA) Each duty day Ensures development database servers are operational Ensures development backups completed successfully Performs development database server tuning and maintenance Maintains inventory of development databases and schemas Maintains documentation of database server configuration and processes Acts as consultant for Testing and Production databases Evaluates and implements technical requests that impact server level performance Database Engineering (DBE) Consultant to application developers concerning all things database Assigned as project POC for one or more projects Reviews and approves database schema Develops stored procedures, functions, automation packages, jobs, remote connections, and processes that run on database server (back end) Works with developers to perform data analysis, design database structure, and implement stored procedures, functions, and queries that interact with application (front end) Designated DBE for Project (POC) Primary point of contact between SCEO and project team for purpose of continuity Responsible for coordinating and following up on tasks concerning project Channels database requirements input to project design Coordinates efforts of other DBEs concerning project. Part of core team for project (ie: name is on quad chart) Attends project meetings