Författararkiv: Daniel Persson

MySQL – Drop table error 1217

Råkade precis ut för detta härliga felmeddelande på en av mina databastabeller i MySQL.
Error Code: 1217 Cannot delete or update a parent row: a foreign key constraint fails
Problemet åtgärdas enkelt genom att ignorera foreign keys tillfälligt.

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE [tabell];
SET FOREIGN_KEY_CHECKS=1;

Have fun! 🙂

Backup av Lync 2013 Server (SQL Express) med Powershell

Jag fick i veckan ett par länkar av en kollega som handlar om att ta backup på MS SQL Express edition som inte innehåller sql-agent. Smidigt att ha till hands för att ta backup av Persistent Chat m.m i lync om det snurrar på en expressvariant av SQL.

Jag har tre SQL-intanser för Lync.
LyncLocal
RTC
RTCLocal

Har valt att schemalägga ett jobb för varje instans.
Nedan finner ni scriptet för instansen RTC. Ni har tre variabler ni kan redigera efter eget önskemål. Sen skapar ni bara ett schedule task som körs på önskade tider.

# Originalscript av Thomas LaRock, http://thomaslarock.com
# Modiferat av Qraze, https://www.qraze.se
# Kör ett script / instans i Lync. RTC, LyncLocal och RTCLocal
# Skapat: 2013-11-15

# Instans som ska backas.
$inst = "RTC"
# Server som instansen är installerad på. OBS! Krävs även om backup görs lokalt på samma maskin.
$server = "Lync01"
# Sökväg till backupfilerna
$dest = "E:\backup\files\"

$v = [System.Reflection.Assembly]::LoadWithPartialName( 'Microsoft.SqlServer.SMO')
if ((($v.FullName.Split(','))[1].Split('='))[1].Split('.')[0] -ne '9') {
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMOExtended') | out-null
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SQLWMIManagement') | out-null
    }

Function Error_Handler {
    Write-Host "Error Category: " + $error[0].CategoryInfo.Category
    Write-Host " Error Object: " + $error[0].TargetObject
    Write-Host " Error Message: " + $error[0].Exception.Message
    Write-Host " Error Message: " + $error[0].FullyQualifiedErrorId
    }

Trap {
    # Handle the error
    Error_Handler;
    # End the script.
    break
    }

$srv = new-object ('Microsoft.SqlServer.Management.Smo.Server') $inst

If ($dest -eq "")
    { $dest = $inst.Settings.BackupDirectory + "\" };
    Write-Output ("Started at: " + (Get-Date -format yyyy-MM-dd-HH:mm:ss));
    cd SQLSERVER:\SQL\$server\$inst\Databases

    #start full backups
    foreach($database in (Get-ChildItem -Force)) {
        $dbName = $database.Name
        if ($dbName -ne "tempdb") {
            $timestamp = Get-Date -Format MMddyy
            $bakFile = $dest + $dbName + "_full_" + $timestamp + ".bak"
            Backup-SqlDatabase -Database $dbName -Initialize -BackupFile $bakFile
        }
    }
Write-Output ("Finished at: " + (Get-Date -format yyyy-MM-dd-HH:mm:ss));

Källa: http://thomaslarock.com/2012/07/automate-sql-server-express-backups-with-powershell/

Battlefield 4 – Installera senaste Nvidiadrivrutinen för nya retina Macbook Pro.

För er som sitter på Macbook Pro och vill få igång Battlefield 4 finns följande artikel att läsa.
Nedanstående artikel handlar om att få på den senaste nvidia-drivrutinen (som krävs för att kunna spela BF4).

http://sleep.dontexist.com/2013/11/01/installing-the-latest-nvidia-drivers-on-late-2013-retina-macbook-pro/

Hoppas det funkar. 🙂

Två veckor kvar till Dreamhack Winter 2013

Om två veckor blir det livat på Dreamhack. 🙂
Då intar 4 +30-taggare och en ”sladdis” Dreamhack. Det lär bli mycket BF4 (Om buggarna är lösta), Starcraft 2 och vem vet, kanske lite Eve smyger sig in. 😉

Vi kommer hålla till i C-hallen på platserna C13:66 och neråt.
För mer information om vårt besök hittar ni på www.ftiv.se.

bf4_turnering

Vi deltar som laget: Fientligt Initiativ

Nedan finner ni vår nuvarande status i BF4-turneringen som vi kommer vara med i. 🙂

Medicintekniska system (serversidan) ligger ljusår efter i utveckling.

I stort sett alla medicintekniska system (serversidan) ligger ljusår efter i utvecklingen.
Än idag kommer det ”nya” system eller ”uppgraderingar” av befintliga system där leverantören bara supporterar Windows Server 2003 R2. Hur hanterar man detta? Ska man acceptera en offert på x antal miljoner för en uppgradering som bygger på samma operativsystem som levererades i version 1 för 8 år sedan? Att operativsystemet ovan dessutom ”dör” hos Microsoft i april 2014 (om ca 1 1/2 år) borde vara en tillräcklig varningsklocka.

Nåja, så här är det och det är väl bara att leva med men tycker ändå det är roligt att man skyller på att det är medicinteknisk utrustning och DÄRFÖR måste ligga på Windows Server 2003 R2 som stabilitetsmässigt inte går att jämföra med nyare OS.

Använda Powershell och Lync 2013 SDK för att skriva till Lync 2013 Persistent Chat

Kunde inte låta bli att labba lite med Powershell mot Lync 2013 SDK.
Det krävs ett antal saker installerade på din dator för att få detta att rulla, sen är det bara en enda DLL du behöver läsa in i Powershell. (Du kan även registrera DLL:en manuellt med regsvr32.exe)

Installationerna du behöver göra.
1) Visual Studio 2010 SP1 (Går alldeles utmärkt med Express-versionen)
2) Installera Lync 2013 SDK

DLL-komponenten du behöver är: Microsoft.Lync.Model.DLL

Åh så äntligen scriptet då. Scriptet hanterar alla chatrum som man ”följer”.

# Script för att skriva text till en Lync 2013 Persistent Chat.

# Ladda in DLL för Lync 2013 SDK
$DLL = “C:\Program Files\Microsoft Office\Office15\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.DLL”

# Importera DLL:en i sessionen
Import-module $DLL

# Valt rum
$roomName = "Rum"

# Textmeddelande
$textMessage = "Valfri text att skicka till chatten"

# Läser in startad klient
$client = [Microsoft.Lync.Model.LyncClient]::GetClient()

# Läser in alla chattrum användaren följer
$rooms = $client.RoomManager.FollowedRooms

# Sätter meddelandetyp till Regular (sträng)
$MessageType = [Microsoft.Lync.Model.Room.RoomMessageType]::Regular
# Läser igenom alla chattrum
foreach ($room in $rooms){
    # Hämtar properties från varje chattrum.
    $properties = $room.Properties

    # Hämtar och filtrerar properties på Key
    foreach ($property in $properties){
        # Letar upp valt chattrum och publicerar meddelandet.
        if ($property.Key -eq "Title" -and $property.Value -eq $roomName){
            #Skickar meddelandet
            $room.BeginSendMessage($textmessage, $MessageType, $null, $null)
        }
    }
}

När du testat färdigt kan det vara bra att rensa chattrummet på skräpmeddelanden.

Clear-CsPersistentChatRoom -Identity $roomName -EndDate (Get-date) -Confirm:$False

Battlefield 4 – Snyggt och bra känsla men…

… tyvärr ganska buggigt. Detta var dock väntat. Releasen av Battlefield 4 blev ungefär som Battlefield3. Största problemet, buggiga servrar.

Sedan releasen (i Europa) har det hunnit komma tre uppdateringar till servrarna. R4 är den som är aktuell just nu.

Först i R3 slutade servrarna gå ner mitt under pågående spel. Tyvärr kom dessa problem tillbaka i R4.

Det är 26 dagar kvar till Dreamhack Winter 2013 så än hinner ju EA/Dice fixa till problemen.