Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MS-SQL-Server - Probleme mit dynamischen Dateinamen bei DTS-Task

Frage Entwicklung Datenbanken

Mitglied: greyhound

greyhound (Level 1) - Jetzt verbinden

16.06.2008, aktualisiert 18.10.2012, 5809 Aufrufe, 10 Kommentare

Dateiname wird nicht zuverlässig ersetzt

MS-SQL-Cracks bitte melden

Seit einiger Zeit habe ich ein seltsames Problem mit unserem SQL-Server.

Hier zunächst die Aufgabenstellung und mein Lösungsansatz.
Für ein Auswertungsprogramm benötigen wir aus einer MSSQL Datenbank täglich Selektionen verschiedener Daten in Form von (kleinen) ASCII-Dateien.

Ich habe hierzu ein spezielles DTS-Paket erstellt, welches zu einem festgelegten Zeitpunkt entsprechende SQL-Scripts ausführt und die Ergebnisse in entsprechende ASCII-Dateien ausgibt. (MS-SQL will wegen der Transformationsregeln hierzu einen konkreten Dateinamen angegeben haben. )
Da die Dateien aber nicht überschrieben werden sollen, habe ich in einem zweiten Schritt über entsprechende Tasks den Dateinamen dynamisch festgelegt (Format \\Server\Freigabe\TEXT-JJJJMMDD.EXT).

Nun mein Problem:
Normalerweise funktioniert obiges Verfahren auch, aber leider nicht immer. Ich habe nun festgestellt, daß die DTS-Task ab und an (grund unbekannt) den Dateinamen nicht dynamisch festlegt, sondern den bei der Definition angegebenen (statischen) Dateinamen benutzt. Da diese Datei dann jedes Mal überschrieben wird, gehen mir immer wieder die "alten" Daten verloren.

Hat jemand hierzu einen Tipp oder auch einen alternativen Lösungsansatz? Bin im Moment ziemlich ratlos und für jeden Hinweis dankbar.

Greyhound
Mitglied: geTuemII
17.06.2008, aktualisiert 18.10.2012
Hallo Greyhound,

von DTS habe ich wenig Ahnung, daher hier ein alternativer Ansatz:
  • Dateien mit DTS zu bestimmtem Zeitpunkt erzeugen --> Ergebnis: Datei mit bekanntemn Namen im bekannten Verzeichnis (\\Server\Freigabe\TEXT.EXT)
  • Danach par Batch Umbenennung der bekannten Datei TEXT.EXT in TEXT-JJJJMMDD.EXT --> Ergebnis: Datei hat den Namen, den sie haben soll und TEXT.EXT ist wieder frei (nicht mehr vorhanden) für den nächsten DTS-Lauf

Falls dieser Ansatz für dich interessant klingt, empfehle ich http://www.administrator.de/wissen/workshop-batch-for-runaways-part-iii ... zur Lektüre.

geTuemII
Bitte warten ..
Mitglied: greyhound
17.06.2008 um 18:09 Uhr
Hi geTuemII,

Darüber hatte ich auch schon nachgedacht, wenngleich es anders eleganter wäre . Aber falls sonst niemand eine Idee zu meinem Problem hat, werde ich mich wohl mit einem "bätsch" versuchen. Da ich mit der Syntax dieser Windowsskripte als alter X-er etwas auf Kriegsfuß stehe, ist Dein Link sicher sehr nützlich. Werd' dann halt ein bisschen beim "Altmeister" abkupfern müssen.

Greyhound
Bitte warten ..
Mitglied: Biber
21.06.2008 um 19:54 Uhr
Moin Greyhound,

ich habe nun auch schon ein paar Tage abgewartet, ob und was so für Alternativen gepostet werden.
Denn... okay, machbar und nicht allzu aufwändig ginge das via einpaar Batchzeilen, aber das kann es ja wohl nicht sein, dass wir es nicht mit SQL zum Fliegen bekommen.

Du hast Doch bestimmt schon 20x auf die fünf Zeilen draufgeschaut, die diese dynamischen Dateinamen ermitteln - magst Du die mal posten?
Und wie startest Du das Skript - über dtsrun oder über VB/VBS?
Irgendeine Regelmäßigkeit bezüglich des "mal klappts, mal klappts nicht"?
Aber bitte nicht antworten: "War immer unter Windows..."

Grüße
Biber
Bitte warten ..
Mitglied: greyhound
23.06.2008 um 13:15 Uhr
Hallo Biber,

danke für's "Mithirnen". Wie Du schon sagtest habe ich natürlich schon x-mal das bisschen Code durchgesehen. Es ist sogar noch simpler als Du annimmst. Die Codesequenz, welche den Dateinamen zuweist lautet einfach :
SELECT '\\server_name\share\prefixtext-' + REPLACE(CONVERT(char, GETDATE(), 102), '.', '') + '.extension'
In dem DTS-Job werden drei verschiedene SQL-Statements abgesetzt, die drei verschiedene Files erzeugen. Die Filenamen (und auch die entsprechenden Statements) unterscheiden sich nur in der Fileextension. Der Rest ist absolut gleich.
Meistens, wenn's schiefgeht, aber nicht immer ist ein bestimmtes File betroffen. Das hat mich jetzt auf eine Idee gebracht. Die Tasks wurden im DTS-Designer von MS-SQL erzeugt und können eigentlich parallel ablaufen. Aufgrund der Ablaufprotokolle ist mir aufgefallen, dass, obwohl die Dateinamen als "dynamic property" der jeweiligen "Destination" zugewiesen wurden, MS-SQL möglicherweise nicht die Generierung der Dateinamen abwartet, sondern die Task ggf. mit dem statischen Namen beendet. Um das zu verifizieren habe ich jetzt mal die Generierung der Dateinamen und die eigentliche Datenselektion über einen Workflow verknüpft. Wenn's das gewesen sein sollte, würde ich gern mal den entsprechenden Programmierer in Redmond sprechen.

Gruß
Greyhound
Bitte warten ..
Mitglied: Biber
23.06.2008 um 13:25 Uhr
Moin Greyhound,
Wenn's das gewesen sein sollte, würde ich gern mal den entsprechenden Programmierer in Redmond sprechen

Dann solltest Du aber aus zwei Gründen persönlich statt fernmündlich bei ihm/ihr vorsprechen:

  • erstens kannst Du nach dem Betreten des Raumes die Bürotür von innen abschliessen
  • zweitens haben PraktikantInnen bestimmt gar kein eigenes Telefon

Grüß mal von mir
Biber
Bitte warten ..
Mitglied: greyhound
23.06.2008 um 15:02 Uhr
Hi Biber

Grüß mal von mir

mit dem Neunschwänzigen?
Bitte warten ..
Mitglied: Biber
23.06.2008 um 15:39 Uhr
Moin greyhound,
<OT>
mit dem Neunschwänzigen?
Hmmm, der Neunschwänzige würde sicherlich nicht in jedem Fall als Strafe empfunden werden, aber wenn Du die Neunschwänzige meinst...

In unseren Forumsregeln steht ja unter Regel 5 als verboten : "Aufrufe oder Anleitungen zu Straftaten" sowie .."Äußerungen, die ...in anderer Weise diskriminierenden Charakter haben.".

Also tue bitte nichts, was ich nicht auch tun würde und nichts, was den Anschein einer ungeplanten Affekthandlung anfechtbar macht.

Ein klitzekleines "Beaver was here" in den 28-Zoll-TFT fände ich aber tolerabel.
</OT>

Grüße
Biber
Bitte warten ..
Mitglied: greyhound
23.06.2008 um 16:08 Uhr
<nochmals OT>
1. ich meinte eigentlich das Neunschwänzige

2. ich werde mich an die Dreisekundenregel halten
</OT>

Gruß
greyhound

<EDIT> naguuut, deeplink beseitigt </EDIT>
Bitte warten ..
Mitglied: geTuemII
23.06.2008 um 17:55 Uhr
Deeplink --> tststs!

Nimm http://blog.tuxilla.de/?s=cat5 dan klapps auch mit dem Neunschwänzigen Irgendwo muß ich doch noch einige Gute (tm) HP-BNC (die grauen!) rumliegen haben...

[Edit] Der Deeplink hat auch das Blinkersyndrom... interessant... [/Edit]

geTuemII
Bitte warten ..
Mitglied: greyhound
25.06.2008 um 01:43 Uhr
@all

Das "Blinker-Syndrom" scheint aufgeklärt zu sein.

Offensichtlich versteht man in Redmond unter "dynamic property" etwas völlig anderes als im Rest der Welt. Es scheint sich keineswegs um eine mit der entsprechenden Variablen fest verknüpfte Eigenschaft zu handeln. Vielmehr lässt DTS die Berechnung solcher Properties offensichtlich als mehr oder weniger unabhängige Tasks ablaufen. Ist die Berechnung der "Property" bei Abschluß der zugehörigen Transfer-Task bereits beendet, dann wird die Property korrekt zugewiesen, andernfalls - Pech gehabt. Der Erfolg ist also abhängig von der aktuellen Maschinenauslastung, der Größe der Datensamples und wer weiß noch was. Das hat zugegebenermaßen natürlich schon auch was Dynamisches.

Merke: Um eine Zuweisung von "dynamic properties" wirklich sicherzustellen, scheint zusätzlich zwingend eine Ende-Start Verknüpfung der "Property-Task" mit der "Transfer-Task" erforderlich zu sein (workflow). Erst dann wartet DTS die Berechnung der Property ab.

Ich glaube, ich seh' mich mal nach einem günstigen Flug nach Redmond um.

greyhound
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst Empfehlung für Festplatten-Konfiguration bei MS SQL Server (3)

Frage von BeSt zum Thema Datenbanken ...

Windows Server
gelöst MS-SQL Server lokale Authentifizierung - Logging (5)

Frage von ThomasAnderson zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...