Wednesday, 16 April 2008

Cross Farm Deployment pt 1

I haven't posted in a while because I have been stuck in the 'hell' that is content deployment in MOSS 2007.

We've a 3 tier environment - one for development, one for staging and one for live. As these environments were not all available at the time of initial construction it has been a pain to get the deployment working. I think I have described the topology that we have but I'll quickly run through it again. In dev we have 2 x virtual MOSS boxes, in staging we have 1 x MOSS box and SQL in the domain and 1 x WFE in the DMZ, in live we have 1 x MOSS box , 1 x SQL cluster in the domain and 2 x WFE in the DMZ with a Domain Controller.

The initial pain was to get all the boxes talking to each other through the relevant ports - this is where if you have a third party running your firewalls you'll need them on call to create the relevant rules for the traffic(port 80, 433, 1433 etc). Once this was done it was the tedious process of getting each of the boxes into the relevant farm and get the services running - so far so good.

Once this was done the deployment process was started from between the development servers. If you running these as virtual machines ensure that the SQL box is a physical box as the processes will grind to a halt/very slow with the disc read/write operations in the virtual environment. This is where we are at the moment - the deployment has been proven between all the boxes as necessary.

We have a publishing site which has been heavily customized and needs to be deployed between the two development boxes and it has failed a number of times. It appears that the customization of the base pages etc is causing an issue. I'll write some more later in the week.

Wednesday, 26 March 2008

MOSS 2007 Internet Development

We've got a deployment going on here that has the WFE's in a DMZ and an application server and SQL server on the LAN.

The installation of MOSS is fine on the LAN as you get authentication from the Domain Controllers - when you add the WFE in the DMZ you don't!! A trust relationship has to exist between the DMZ and the LAN - OK so far but if you have more than 1 WFE in the DMZ you can't run PSConfig to use SQL authentication. So our solution is to have a Domain Controller in the DMZ and establish trust back to the LAN, use Port 1433 for SQL and Port 80 as per normal and use content publishing between the application server (where users will edit content) and the DB's that the WFE's are pointing to.

Wednesday, 12 March 2008

U2U CAML Query Builder

I recently installed and used the CAML Query Builder from U2U. It's a good tool but there was one gotcha - in the XML that is built, the query is nested in <Query></Query>, - alright so far and the tool returns results. Copy this and use it in the SPQuery object and all results are returned regardless of the query used !? Well by removing the <Query></Query> tags it resolves the issue.

Friday, 29 February 2008

Trace and Event Log Categories

Least critical event to report to the event log
None
Error
Warning
Audit Failure
Audit Success
Information

Least critical event to report to the trace log
None
Unexpected
Monitorable
High
Medium
Verbose

Event Throttling Categories

AllAdministration
Backup and RestoreBackward Compatible Administration
Backward Compatible Site Object ModelBusiness Data
CommunicationContent Deployment
DatabaseDocument Management
E-MailExcel Calculation Services
Excel Services AdministrationExcel Services Cache
Excel Services External DataExcel Services Session
Excel Services Web Front EndExcel Web Access
Excel Web ServicesFeature Infrastructure
FieldsForms Services Administration
Forms Services Conversion and DeploymentForms Services Data Binding
Forms Services Data ObjectsForms Services Deployment
Forms Services File OpenForms Services Object Model
Forms Services RenderingForms Services Runtime
Forms Services RuntimeForms Services Runtime - Business Logic
Forms Services Runtime - Data ConnectionsForms Services Runtime - Session State
Forms Services ValidationGeneral
Group Approval Enhanced Group Management LibraryGroup Approval Enhanced Group Management Pages
Group Approval LibraryGroup Approval Pages
Group Approval SchedulesGroup Approval SOAP
Information Policy ManagementIRM
Knowledge Network ServerLauncher Service
Load Balancer ServiceLong running operation infrastructure
MCMS 2002 MigrationMS Search Administration
MS Search Advanced TracingMS Search Indexing
MS Search PropagationMS Search Query
MS Search Query ProcessorOffice Server General
Office Server Shared ServicesProject Server - General
Project Server Active Cache Enterprise Resource LoadProject Server Active Cache Load
Project Server Active Cache operationsProject Server Active Cache Save
Project Server Active Directory SynchronizationProject Server Analysis Cube Building
Project Server Archive, RestoreProject Server Calendars
Project Server GlobalProject Server Notifications
Project Server Portfolio ManagementProject Server Provisioning
Project Server QueueProject Server Reporting
Project Server ResourceProject Server Security
Project Server Server-Side EventsProject Server Sharepoint Integration
Project Server Status ReportsProject Server Summary Resource Assignments
Project Server Task Statusing and UpdatesProject Server Timesheet
Project Server-side Project OperationsProject Web Access
PublishingPublishing Cache
Publishing ProvisioningRecords Center
RuntimeRuntime
Server HelpSession State Service
Setup and UpgradeSharePoint Services
Site DirectorySite Management
SSOTimer
Timer JobTopology
Unified Logging ServiceUpgrade
User ProfilesWeb Controls
Web PartsWebParts
Workflow FeaturesWorkflow Infrastructure

These are the categories available for logging under the Event Throttling Category in Diagnostic logging in MOSS 2007

Wednesday, 20 February 2008

MOSS 2007 Webpart Control Events not Firing

I found this an 'interesting one'.

protected override void CreateChildControls()
{
try
{
PopulateDataTable();
CreateDropDown();
base.CreateChildControls();
}
catch(Exception ex)
{...}
}

When creating a Webpart and I had the events wired up in the CreateDropDown() they would not fire but when I moved them into the CreateChildControls() they did!

All the CreateDropDown() did was populate a drop down from the table created in the PopulateDataTable() and wire up the Click event.

I haven't found an answer yet as to why this would happen but I'll look into it later but it worked for me.

Tuesday, 12 February 2008