Thursday, 30 August 2012

Exchange 2010 backup fails with the error "0xe0000380 - Backup Exec attempted to back up an Exchange database according to the job settings. The database was not found in the Database Availability Group (DAG)" even when there is no Database Availability Group (DAG) setup

Problem
We had a recent issue where Backup Exec 2010 just stopped working, it wouldn't backup anything and gave the error;

Exchange 2010 backup fails with the error "0xe0000380 - Backup Exec attempted to back up an Exchange database according to the job settings. The database was not found in the Database Availability Group (DAG)."

It was odd because even though it was a Exchange error, none of the job would run, not even if I changed the priorities of the selction list.

Cause
This failure may occur if the Backup Exec Remote Agent Service on the Exchange Server(s) and Backup Exec Server is NOT using the Local System Account (LSA) as the logon account.
This issue may also occur if the Backup Exec Logon Account being used to access the Exchange server does not have the required permissions assigned to it.

It seems bizzare for this problem to occur of its own accord, but it did!!

Solution
  1. Go to the Services panel on the Exchange Server(s) and Backup Exec Server, go to the properties of the "Backup Exec Remote Agent for Windows Systems" service.
  2. Select the "Log On" tab and change the logon method to "Local System Account".
  3. Restart the service after applying the change.

Aggregated Lookups in SSRS

SSRS 2008 R2 has a nice function to be able to lookup another dataset. Using Lookupset you can return a list of entries in another dataset that match your specified values. The structure of the function is as follows:

Lookupset([Source Expression], [Destination Expression], [Result Expression(Value to Retrieve)], [Dataset])

As an example, this passes the customer address ID from the current Dataset to match the Address ID in the AddressesDataset and Returns the matching postcode.

 Lookupset(Fields!CustomerAddressID.Value, Fields!AddressID.Value, Fields!Postcode.Value, "AddressesDataset")


This is all well and good, but what if there are multiple matching entries that you want to aggregate? In my case - Sum. There isn't a function out of the box in SSRS that I'm aware of, but I found this very handy little piece of code. (This could be easily modified to aggregate in some other way should you wish)

Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
suma = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
Next
Return suma
End Function


Drop this into the 'Code' area and then simply call it in your expression and pass the lookupset to it. The resulting value will be the sum of the called entries

Code.SumLookup(Lookupset([Source Expression], [Destination Expression], [Result Expression(Value to Retrieve)], [Dataset]))

 

As an example, this matches the client again but returns a sum of that clients billed invoices:

Code.SumLookup(Lookupset(Fields!ID.Value, Fields!CustomerID.Value, Fields!Billed.Value, "InvoicesDataset"))

Friday, 17 August 2012

KB2667402 Causing Remote Desktop not to work

I have had a recent (I looked at it about a month ago, then revisited it again today and have have come up with same outcome) problem where the Microsoft update KB2667402 caused some servers to stop working in terms of RDP connections! Nothing shows in the event log and the user error is essentially the same as the server been down.

Having spent hours trying to fix this the only workaround I have been able to find is to un-install the update and decline it in WSUS so that it doesn't get installed again. I am sort of OK with this as its behind a firewall and RDP is not Internet facing.

I have tried everything including;
  1. Un-installing KB2667402 and installing the new updated Microsoft KB2667402 v2 patch - Didn't work!
  2. Un-install the KB2621440 and KB2667402 then I installed again the KB2621440 restarted the server and I installed the KB2667402 - Didn't work!
  3. Un-installing KB2667402 and installing the new updated Microsoft KB2667402 v2 patch and then replace the rdpcorekmts.dll from a working machine - Didn't work!
I am always a big fan of Microsoft but I feel that from looking at the forums they have still yet to address this issue, months later!

Tuesday, 14 August 2012

SharePoint - Out of the Box KPI Functionality

I've been playing about recently with the KPI functionality within SharePoint 2010:
  • I set myself up with a Status List
  • Created a few performance indicators
  • Loaded the KPI Status List webpart
Then I encountered a problem - I needed to filter the list of KPIs by the current user. Simple right? No. Every other list you can filter by the current user but not the Status List. Even if you apply the filter to the view, the filter doesn't apply and there doesn't seem to a way to connect the webpart to a current user filter either.

I could use a standard content query webpart but then I don't get the nice indicators (I don't even see a way to display the actual key value)

So unless anyone has any other ideas I have two options
  1. Create my own custom webpart
  2. (The easier option) Use SQL Reporting Services (SSRS) to build the users KPI list and show that on the page instead.
Very disappointing!

Thursday, 9 August 2012

Using FreePBX with Custom Contexts, Account Codes (Asternic) & Music On Hold

We have had a tricky problem recently that meant that I had to get to grips with Asterisks configuration files, usually the GUI handles pretty much everything.

The problem was that we were using custom context to direct certain extension to certain routes, which works brilliantly! We were also using account codes for extensions for outbound call accounting, which also worked great! We then needed different MOH for different outbound routes, unfortunately for extensions that were using account codes this broke the custom MOH function within a route and it always played the default MOH. This wasn't acceptable as the company we were sharing the PBX with for simplicity have had customised MOH created to sell their services.

The solution was to modify the extensions_custom_asternic_outbound_freepbx.conf file so it has the following entry;

[queuedial]
; this piece of dialplan is just a calling hook into the [qlog-queuedial] conte$
; outbound dialing - replace as needed - just fill in the same variables.
exten => _X.,1,Set(QDIALER_QUEUE=${CDR(accountcode)})
exten => _X.,n,Set(QDIALER_AGENT=${AMPUSERCIDNAME})
exten => _X.,n,Set(QDIALER_CHANNEL=${OUT_${DIAL_TRUNK}}/${EXTEN})
exten => _X.,n,Set(QueueName=${QDIALER_QUEUE})
exten => _X.,n,MixMonitor(${QDIALER_QUEUE}-${UNIQUEID}.wav,b,/usr/local/parselo$
exten => _X.,n,SetMusicOnHold(FusionMOH)
exten => _X.,n,Goto(qlog-queuedial,${EXTEN},1)
This then forces any outbound calls that utilise the FreePBX custom extensions file and thus the extensions_custom_asternic_outbound_freepbx.conf as it is an #include in this file to use the MOH that you specify and not the default.

Wednesday, 8 August 2012

Word Field Codes - SET, REF and SEQ

Problem

One of our Clients recently had a Word document within which they wanted some headings to be conditional based upon data from their Accounts/Contact Management Solution (CMS).

As an example these were the headings they wanted:
 
1.    Red- Fixed Heading (Always 1)

2.    Green – Conditional Heading
e.g. {IF { MERGE FIELD FROM CMS}  = "1" "Green"  "—No Heading--"  \* MERGEFORMAT}

3.    Black – Conditional Heading
e.g. {IF { MERGE FIELD FROM CMS }  = "1" "Black"  "—No Heading--"  \* MERGEFORMAT}

4.    Blue - Fixed Heading

If Items 2 and 3 aren’t in place Blue should be numbered 2.

Resolution

The first thing I tried was the SEQ field code, but what I found was the SEQ field behaved strangely within the IF Statement (Probably due to the timings of loading the data).

I did however find a solution using SET and REF:

At the beginning of the document I created a SET field

{SET numb 0} – To create a variable of 0

Within the document I then created the headings as follows:

{SET numb {=numb + 1}} {Ref numb}Red

{IF { MERGE FIELD FROM CMS}  = "1" “{SET numb {=numb + 1}} {Ref numb} Green” “”}

{IF { MERGE FIELD FROM CMS}  = "1" “{SET numb {=numb + 1}} {Ref numb} Black” “”}

{SET numb {=numb + 1}} {Ref numb}Blue
If you have any queries regarding SET, REF, SEQ, IF or any other field codes, ask us using the comments field below.

Tuesday, 7 August 2012

SharePoint Data and SSRS Reports

Problem

I had a number of reports configured in SSRS to output data from our SharePoint server. They worked fine but with the following issues.
  1. When browsing the report if the user navigated away from the page and then clicked the back button all the SharePoint data within the report would display an error
  2. If the user exported the report to Excel all the SharePoint data would be replaced by an error.

Solution

The reports in question all had something in common; none of them had a table or matrix within the report to display the SharePoint Dataset (via SOAP query). In each case I was using the data for calculations within tables linked to other datasets (SQL connections).

As soon as I added a hidden table to directly display the SharePoint data the problem went away.

It would seem therefore that unlike SQL connections which 'just work', SOAP datasets are only loaded when the report is first displayed, unless you have a table or matrix that directly references it. Hence why it wasn't loaded the data on the page back or the Excel Export.

Lesson learned.


My Setup: Visual Studio 2010 publishing reports to SQL Server Reporting Services 2008 R2.

Friday, 3 August 2012

SharePoint and Business Data Columns

Problem

I've been struggling for a while copying data from one SharePoint List to another where one of the fields links to Business Data Connectivity (BCS) data. The copy always works with no errors, but the recipient BCS field remained blank.

Solution

If you tell SharePoint Designer (SPD) to populate the BCS data column in List B from the BCS data column in List B it simply won't work. (It does actually copy a name in the field but the link to the BCS data is not actually created). This is because it also needs to have an ID entered in the [yourBCSdataname]_id field.

Annoyingly SPD will let you read from this id field but it won't let you write to it.


My workaround therefore was to write the id field from List A into a temporary field in List B. To make things a bit easier for me I also copied the display name of the BCS item to a temporary field in List B. Upon item creation in List B I then fired a visual studio designed workflow to copy the data from the temporary field into the id field in List B. The code was relatively simple:


SPListItem item = workflowProperties.Item;
item["MyBCSData_ID"] = item["tempid"].ToString();
item["MyBCSDataField"] = item["tempname"].ToString();
item.Update();

Note: If you have any additional BCS fields displayed these won't automatically be populated. You will need to refresh the BCS data for this to happen. There is code out there to do that, but it wasn't an issue for me I was purely concerned with getting the link created on that one field.


See my post back on the original Microsoft Forum HERE

Internet high availability, dual connections. What would you do if you lost the internet for days?

At Fusion we take Internet connectivity very seriously, we recently had a clients internet connection develop a fault. Once we eventually got it logged as a fault with BT via our service provider (Andrews & Arnold) the earliest appointment for an engineer was two days later, this would mean a transport company who's business is totally reliant on the internet crippled for days.

We always react to these situations fast and quickly, within a few hours we implemented our FusionNet Firewall along with Andrews & Arnold's backup 3G mobile data service to give the whole company access to the internet using the Three Mobile Network. Whilst the connection wasn't the speeds they had become accustomed to, it did mean that they were once again connected to the outside world and able to do business as usual until the BT fault was rectified.

Faults on lines happen every day in varied levels of severity and could easily happen to you! We can solve this problem by implementing a FusionNet firewall device and by having two internet connections coming into the building from two different supplier; one using the standard BT Wholesale product that the majority of ISP's will resell and one connection using O2 Wholesale product. Both BT and O2 have their own equipment in the exchange which means that barring someone chopping the copper cable coming into your premises, both lines will never be down at the same time. Should you want even more peace of mind we can also install the 3G data dongle as an additional backup connectivity method. We also proactivly monitor your connections to ensure that if any line does go down then we get the fault recified as soon as possible, afterall if you are using the backup line and that also develops a fault then you are once again without internet connectivity.

We practise what we preach and at Fusion internet connectivity is the most important part of our business. Without it we cannot receive your calls (we use a VOIP telephone system), we cannot connect to your computers to give you support and we would be unable to pickup your email requests. We effectively wouldn't be able to do business! Therefore we have a O2 connection provided by Andrews & Arnold, we have a BT connection provided by IDNET, and a super fast 100 meg pipe to Virgin. For the more technical people amongst you we also use Andrews & Arnolds L2TP fallback service so that we can still use any of our allocated IP addresses using any service provider.

Is your business at risk, why wait to be in a situation where you don't have internet access for days? If so call us today for a free no obligation chat on 08451221240

Thursday, 2 August 2012

Skype & Voice Over IP

So you can now contact Fusion using Skype, we have a Asterisk based sophisticated VOIP (Voice Over Internet Protocol) telephone system. For many years Skype has used it own proprietary protocols which has meant very little integration with other systems. Now they provide SIP channels via the product Skype connect, imagine the power of someone looking at your website clicking on your call me Skype icon and the call been answered by your receptionist using her traditional handset or even your digital receptionist using the PBX menu system. Once the call is in the telephone system its treated just like a normal call.

Not only can people call you for free, you can also call other Skype users and you can also use Skype for your outbound calls to the standard telephone network. Skype even give you some nifty reports so you can see your call spend.

Call us via Skype