Monday, 29 April 2013

Publizieren nach Mapserver/MapGuide - Vorsicht Spassbremse


Publiziert man eine Karte aus Map nach MapGuide/AIMS kann es passieren, dass im Web-Projekt pro Layer ein Spatial-Filter gesetzt wird, der sich sehr nachteilig auf die Performance auswirkt.
 
Das Problem hatte ich nach einiger Suche schon vor einiger Zeit entdeckt und mir ein kleines PHP Script geschrieben, dass in einem Web-Projekt die Spatial Filter entfernt. Leider hatte ich das bei einem kürzlich publizierten Projekt mit schlechter Kartenperformance schon wieder vergessen. Daher hatte ich begonnen, die Ursache zu suchen : liegt es an den verwendeten Symbolen, an der Vielzahl der Klassen je Layer oder an etwas anderem? Mit AIMS 2013 kann man je Karte einen einfachen Performancebericht erstellen. Nachdem ich entsprechend einige Tests durchgeführt hatte fiel mir dann aber doch noch auf, dass bei den Layern der Spatial Filter gesetzt war. Kaum waren diese entfernt, hatte sich die Kartenperformance wesentlich verbessert. Die Performanceberichte zeigen dies deutlich:
 
Karte 5 Layer:
- mit einem Spatial Filter je Layer : Kartenaufbau ca 2.5 sec


 
- ohne Spatial Filter je Layer: Kartenaufbau ca. 0.01 sec

 
Der Layerfilter stammt aus dem Darstellungsmodell. Wann genau der Layerfilter mit übergeben wird habe ich nicht weiter untersucht. Er sollte z.B. nicht mit übertragen werden, wenn man die Option "Auf Ansichtsfenster begrenzen" im Darstellungsmodell nicht verwendet. Jedenfalls empfiehlt es sich, nach dem Publizieren im Layer-Editor in Studio zu schauen, ob die Layer einen Spatial Filter haben oder nicht:
 

 
Die Performanceeinbusse kommt zu Stande, da jede Layer- Abfrage in Oracle nun zwei Spatial Filter enthält - einen aus der Layerdefinition und den zweiten aus den Koordinaten für die neue Karte. Der Filter aus der Layerdefinition ist wohl in den meisten Fällen nicht gewollt.
 
Per Script kann ich die unerwünschten Spatial Filter entfernen und die anderen Filter beibehalten:

Friday, 26 April 2013

Log Dateien in Map und AIMS

Ab und zu erhält man in Map eine Fehlermeldung, ohne das daraus klar wird, was genau die Ursache bzw. der Grund ist. Auch bei einem der relativ seltenen Abstürze erhält man nicht immer eine ausreichende Angabe, warum das Problem aufgetreten ist.
Im Falle eines Absturzes mit CER Bericht kann man manchmal die Details zu dem Problem in der Datei "Dumpuserinfo.xml" finden, die sich direkt per Link aus dem CER Fenster öffnen lässt. 


Für einen kürzlich aufgetretenen Crash lautet der entsprechende Eintrag in der Dumpuserinfo.xml:
<InnerException type="Autodesk.Map.IM.Data.AttributeNotFoundException"><Message>Attribut "F_CLASS_ID_ATTR" nicht gefunden in der Tabelle "konnte nicht ausgewertet werden"</Message>
Anhand der genaueren Beschreibung kann man in einigen Fällen die Ursache dann selber beseitigen.
Bei Topobase bezogenen Fehlermeldungen in Map lohnt sich ein Blick in die "Applicationlog.xml" Datei. Diese findet sich im Unterorder "Log" des Installationsverzeichnisses. Nicht nur Map hat dieses zusätzliche Logging für die Topobase Funktionen sondern auch der Administrator und TBWEB (AIMS mit IAE).
Die Angaben über den genauen Zeitpunkt des Loggings der Meldung ist in einem Timestamp codiert, so dass sich Datum und Zeit nicht direkt ablesen lässt:



Zudem kann man in einer guten gefüllten Log Datei wichtige Meldungen leicht übersehen. Für die sauber strukturierte Anzeige der Meldungen gibt es das kostenlos erhätliches Programm "chainsaw". In Chainsaw werden Meldungen nach Bedeutung farblich getrennt dargestellt. Insgesamt bleibt der Überblick so besser gewahrt:



Das Programm ist schon relativ alt (2006) und wird nicht weiterentwickelt. Ob es andere Viewer für die Log Dateien gibt ist mir nicht bekannt. Die Log Dateien basieren scheinbar auf dem Log4net Framework.
Das Tool steht hier zum Download bereit.

CountryKit Dumps - Tablespaceeinstellungen

Bis auf Strom werden die CK CHs mit einem Dump ausgeliefert. Die exportierten Oracle User wurden mit den Tablespace - Einstellungen "USERS" und "INDX" erstellt. Der Export wurde von einem DBA vorgenommen.

Ist in der eigenen Oracle Datenbank ein Tablespace "USERS" vorhanden - was bei vielen Oracle Datenbanken der Fall sein dürfte - dann landen beim Import der Dumps die Datenbankobjekte auch dort. Dies ist unabhängig davon, ob man den Oracle Benutzer vorgängig anlegt und einen anderen Default-Tablespace zuweist oder beim Import über den AIA entsprechend Einstellungen vornimmt.

Der "alte" Oracle Import lässt es nicht zu, die Tablespace Einstellungen während des Imports zu ändern. In der Map Hilfe heisst es entsprechend:

Beim Importieren wendet Oracle die folgende Logik an:
•Wenn die Zieldatenbank einen Tablespace mit demselben Namen wie die ursprüngliche Datenbank enthält, wird die Tabelle in diesem Tablespace platziert. Sie können den Ziel-Tablespace nicht ändern.
•Wenn die Zieldatenbank keinen Tablespace mit demselben Namen enthält, wird die Tabelle im Vorgabe-Tablespace (wird während Schema-Erstellung mit dem Wert aus dem Dialogfeld Dump-Import angegeben) platziert.

Mit dem neuen Datapump ist während des Imports eine neue Zuweisung des Tablespaces - oder auch mehrerer Tablespaces - möglich. Die CK Dumps lassen sich jedoch nur mit dem "alten" imp.exe importieren, nicht mit dem neuen DataPump-Import.

Welche Lösungen gibt es für das Problem?

Oracle-seitig gibt es zwei Möglichkeiten, deren Beschreibung man hier findet:

Nähere Hinweise zu zweiten Varianten findet sich auch bei Oracle:

Hier ist zu beachten - die CK Dumps wurden von einem Oracle Benutzer mit DBA Rolle erstellt. Für den Import ist daher ebenfalls eine DBA Rolle erforderlich. Die DBA Rolle beinhaltet das Privileg "unlimited tablespace". Dem Oracle Benutzer, der den Import durchführt das Privileg "unlimited tablespace" zu entziehen reicht daher nicht. Es müsste der DBA Rolle entzogen werden.

Ist keine der beiden Varianten praktikabel, dann bleibt noch, das CK ohne Dump gemäss der Beschreibung im jeweiligen "Workbook"  zu erstellen. Bei Bedarf kann man sich nach der manuellen Einrichtung einen eigenen Vorlage-Dump anlegen.

Thursday, 25 April 2013

AutoCAD Map Profil zurücksetzen


Eine neue Funktion in Map 2013 hat mir gerade sehr geholfen. Bei einem Benutzer war der Bildaufbau extrem langsam - tw. Faktor 10 gegenüber anderen Nutzern. Zusätzlich erschien nach dem Digitalisieren eines Features eine Fehlermeldung. Beide Probleme traten nur auf, wenn sich der Nutzer an seinem PC angemeldet hat. Ich konnte die  Probleme an diesem PC mit meinem eigenen Windows Zugang nicht beobachten, auch an allen anderen PCs hat es ohne Schwierigkeiten funktioniert.

Der Tipp zur Lösung kam von Autodesk Support. Im Windows Start Menü von Map findet man die Funktion "Einstellungen auf Vorgabe zurücksetzen". Damit wird das AutoCAD Profil des Benutzers gelöscht und neu angelegt. 


Früher musste man dazu die Registry öffnen und einige Einträge entfernen sowie bestimmte Ordner im Benutzerverzeichnis löschen. Da es doch öfter mal Probleme mit den AutoCAD Profilen geben kann, ist die neue Funktion in Map 2013 (bzw. schon seit 2012 vorhanden) eine echte Erleichterung, um das Profil zurückzusetzen. Für frühere AutoCAD Versionen findet man die Anleitung auf der Autodesk Webseite, z.B. für Map 2010 in TS14062982. (Reinitiating secondary installer )

Wer beim Bildaufbau oder Digitalisieren merkwürdige Fehlermeldungen bekommt, die nur an einem Rechner auftreten - manchmal hilft in diesen Fällen, den Temp-Ordner des Windows-Benutzers  zu leeren. Um in den Temp-Ordner des Benutzer zu gelangen gibt man in '%temp' in die Adressleiste des Windows Explorers ein:


Saturday, 20 April 2013

Infrastructure Modeler 2013 R2

Ich wollte letzte Woche den Infrastructure Modeler 2013 installieren und habe auf der Autodesk - Webseite mit den Servicepacks gesehen, dass es einen "Release 2" gibt, den man im Subscription Center herunterladen könne:

"This hotfix applies to only the R2 release of Autodesk Infraworks 2013. Autodesk Infraworks 2013 R2 is available to product Subscribers on the Autodesk Subscription Center."

Achso, den Infrastructure Modeler gibt es ja nicht mehr - dafür jetzt "Autodesk Infraworks" (scheinbar auch rückwirkend für Version 2013).

Also, nichts wie hin zum Sub-Center und runterladen. Leider habe ich dort bei "Products" keinen "Infrastructure Modeler" gefunden - nur die Design Suite mit ca. 12 GB Umfang. Aber die DesignSuite hab ich ja schon - und ausserdem will ich nicht 12 GB runterladen - wahrscheinlich beinhaltet der Download noch  R1. Support Anfrage bei Autodesk gestellt.....

.... nach einiger Recherche dort stellt sich heraus: ich kann den Download bei "Produkte" nicht sehen, weil wir keine einzelne Lizenz haben sondern nur die DesignSuite-Lizenz. Der R2 steht jedoch bei "Extensions" und nichts bei "Products" zum Download zur Verfügung. Alles klar - hab ich dann dort auch so gefunden. Hätte man das nicht mit erwähnen können beim obigen Verweis auf das Sub-Center? 


Oracle Export bei Job-aktiven Dokumenten


Bei einem Job-aktiven Dokument in AutoCAD Map sind auch für den Dump-Export nur die "Live" Daten sichtbar. Das Job Konzept in Map basiert auf der Virtual Private Database (VPD) in Oracle. Eine kurze Einführung in Deutsch findet man hier  oder ausführlich hier bei Oracle.

Von der Anwendung der VPD wird nur SYS ausgenommen. Um einen vollständigen Export eines Job-aktiven Dokumentes zu erreichen, wäre die erste Möglichkeit, mit dem SYS Account den Export durchzuführen. Der realistische Ansatz ist jedoch, den Oracle Benutzer, der den Export durchführt, von der Anwendung der VPD temporär oder dauerhaft zu befreien. Dies geschieht über die folgende Anweisung:

GRANT EXEMPT ACCESS POLICY TO user_der_export_durchführt;

Um die Änderung wieder zurückzunehmen ist folgende Anweisung erforderlich:

REVOKE EXEMPT ACCESS POLICY FROM user_der_export_durchführt;

Dies ist etwas versteckt - in der ReadMe - auch in Map dokumentiert

http://docs.autodesk.com/MAP/2013/DEU/files/readme-map.htm

Wer aus einer Applikation heraus - z.B. FME - auf alle Daten in einem Job-aktiven Dokument zugreifen will kann dies - beschränkt für die aktuelle Session auf das job-aktive Dokument - über die folgende SQL Anweisung erreichen:

select setjob(-1) from dual

bzw.

call job3.setjob(-1)

Über das Map-interne PL/SQL Paket job3 wird dadurch für die aktuelle Session alle Jobs im Dokument sichtbar. Anstelle "-1" kann eine bestimmte Job ID eingegeben werden, um an die Daten speziell dieses Jobs zu gelangen.

siehe auch: http://aucache.autodesk.com/au2011/sessions/2300/class_handouts/v3_AU2011ClassHandout_GS2300.pdf 
http://de.slideshare.net/SafeSoftware/using-fme-for-the-city-of-palo-alto-topobase-implentation

Map 2013 Abwasser Fachschale - kein Klassifizierungsmodell gefunden

Beim Aufruf der Fachschalenoptionen für die Fachschale Abwasser in Map 2013 erscheint eventuell folgende Meldung:

"Es wurde kein Klassifizierungsmodell im System gefunden. Stellen Sie sicher, dass die entsprechenden Plugins für Abwasser installiert sind."


Das Fenster mit der Meldung ist auch mit einem Warnkreuz-ähnlichen Symbol versehen - das kann nichts Gutes bedeuten, oder? Zumal wenn man gerade auf Suche nach der Lösung für ein Problem ist.....und es auch noch auf drei verschiedenen Rechnern auftritt. Was ist hier los? Muss ich nochmal neu installieren?

Die fehlende Klassifizierung kann als Plugin installiert werden. Dazu muss man jedoch die Abwasser-Extension aus dem Subscription-Center runterladen. Um diesen Zusammenhang zu sehen, musste ich allerdings den Autodesk Support in Anspruch nehmen.

Die "Klassifikation" ist dann zwar als solche in der Begleitdokumentation im Subscription Center erwähnt - was sich genau dahinter verbirgt bleibt aber erstmal unklar. Ich finde es sehr verwirrend, wenn eine "Hinweis" erscheint, die wie eine Fehlermeldung daherkommt und dann nicht genauer erklärt, was es damit auf sich hat.

Warum Map hier überhaupt von der Extension weiss? Wenn sie so wichtig ist, dass man auf ihr Fehlen extra "hinweisen" muss - warum ist sie dann nicht gleich mit in der Fachschale oder im CountryKit enthalten?