Loading Spatial
Hi,
I just loaded the spatial option for Oracle v. 9.1 and now I'm having problems getting the databases back up. We are using ArcSDE as well, and it won't start up either. The message I get when starting SDE is ORA-01033 - Oracle initialization or shutdown in progress. Well, I can sucessfully shut down the database, but when I try to start it up again, it gives the error ORA-01041: internal error. hostdef extension doesn't exist.
Is there something that I did wrong when running the script for installing the spatial option?
Melissa
The database has crashed when in startup/shutdown state so
This could really do with a check over from support as to what is
BUT there are a couple of things you can quickly do
1) login into the computer as the oracle program owner.
2) check you ORACLE_HOME and ORACLE_SID are set correctly
3) startup sqlplus
OS> sqlplus /nolog
SQL> connect / as sysdba
SQL> spool sort_out.log
SQL> shutdown abort
SQL> startup
If the databse opens ok fine
IF not please open a service request with support
Similar Messages
-
Loading spatial data by sql *loader
hi there
i have a load_kat_opcina.ctl file from which i should load spatial data into my 10g db table.
load_data.ctl file is as shown below:
LOAD DATA
INFILE *
REPLACE
CONTINUEIF NEXT(1:1) = '#'
INTO TABLE KAT_OPCINA
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(KO_MBR NULLIF KO_MBR=BLANKS,
KO_SIFRA NULLIF KO_SIFRA=BLANKS,
KO_NAZIV NULLIF KO_NAZIV=BLANKS,
KO_ID NULLIF KO_ID=BLANKS,
ID NULLIF ID=BLANKS,
is_null1 FILLER CHAR,
POVRSINA COLUMN OBJECT NULLIF is_null1='E'
( sdo_gtype INTEGER EXTERNAL,
sdo_srid INTEGER EXTERNAL NULLIF POVRSINA.sdo_srid=BLANKS,
SDO_POINT COLUMN OBJECT NULLIF is_null1='C'
( X INTEGER EXTERNAL,
Y INTEGER EXTERNAL,
Z INTEGER EXTERNAL NULLIF POVRSINA.SDO_POINT.Z=BLANKS),
SDO_ELEM_INFO VARRAY terminated by ';' NULLIF is_null1='P'
(SDO_ORDINATES INTEGER EXTERNAL),
SDO_ORDINATES VARRAY terminated by ':' NULLIF is_null1='P'
(SDO_ORDINATES INTEGER EXTERNAL)
BEGINDATA
0|426|MARKU[EVEC|314717|6789094|
0|3131|VURNOVEC|16605787|6789097|
#C|2003|||||1|1005|3|1|2|1|169|......|5589490440|5082192250:
0|3034|\UR\EKOVEC|16225011|6789100|
0|35|^EHI|12297784|6789190|
#C|2003|||||1|1005|2|1|2|1|239|....|5574944600|5064714553:
0|221|ODRANSKI OBRE@|12441649|6789193|
0|353|TRPUCI|14071974|6789199|
i have deleted most of data here due to space savings.
i call sql *loader from winxp command prompt as follows:
SQLLDR CONTROL=C:\temp\load_kat_opcina.ctl, USERID=username/pswrd@sid, LOG=logfile.log,BAD==baz.bad, DISCARD=DISCARD=toss.dsc
after executing command, table 'kat_opcina' is not filled with data from this .ctl file.
the following is the content of the log file:
SQL*Loader: Release 10.2.0.1.0 - Production on Sri Svi 31 14:20:28 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Control File: C:\TEMP\load_kat_opcina.ctl
Data File: C:\TEMP\load_kat_opcina.ctl
Bad File: C:\TEMP\baz.bad
Discard File: C:\TEMP\toss.dsc
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: 1:1 = 0X23(character '#'), in next physical record
Path used: Conventional
Table KAT_OPCINA, loaded from every logical record.
Insert option in effect for this table: REPLACE
TRAILING NULLCOLS option in effect
Column Name Position Len Term Encl Datatype
KO_MBR FIRST * | O(") CHARACTER
NULL if KO_MBR = BLANKS
KO_SIFRA NEXT * | O(") CHARACTER
NULL if KO_SIFRA = BLANKS
KO_NAZIV NEXT * | O(") CHARACTER
NULL if KO_NAZIV = BLANKS
KO_ID NEXT * | O(") CHARACTER
NULL if KO_ID = BLANKS
ID NEXT * | O(") CHARACTER
NULL if ID = BLANKS
IS_NULL1 NEXT * | O(") CHARACTER
(FILLER FIELD)
POVRSINA DERIVED * COLUMN OBJECT
NULL if IS_NULL1 = 0X45(character 'E')
*** Fields in POVRSINA
SDO_GTYPE NEXT * | O(") CHARACTER
SDO_SRID NEXT * | O(") CHARACTER
NULL if POVRSINA.SDO_SRID = BLANKS
SDO_POINT DERIVED * COLUMN OBJECT
NULL if IS_NULL1 = 0X43(character 'C')
*** Fields in POVRSINA.SDO_POINT
X NEXT * | O(") CHARACTER
Y NEXT * | O(") CHARACTER
Z NEXT * | O(") CHARACTER
NULL if POVRSINA.SDO_POINT.Z = BLANKS
*** End of fields in POVRSINA.SDO_POINT
SDO_ELEM_INFO DERIVED * ; VARRAY
NULL if IS_NULL1 = 0X50(character 'P')
*** Fields in POVRSINA.SDO_ELEM_INFO
SDO_ORDINATES FIRST * | O(") CHARACTER
*** End of fields in POVRSINA.SDO_ELEM_INFO
SDO_ORDINATES DERIVED * : VARRAY
NULL if IS_NULL1 = 0X50(character 'P')
*** Fields in POVRSINA.SDO_ORDINATES
SDO_ORDINATES FIRST * | O(") CHARACTER
*** End of fields in POVRSINA.SDO_ORDINATES
*** End of fields in POVRSINA
Record 1: Rejected - Error on table KAT_OPCINA.
ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-13365: layer SRID does not match geometry SRID
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 623
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 227
Record 2: Rejected - Error on table KAT_OPCINA.
ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-13365: layer SRID does not match geometry SRID
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 623
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 227
Record 33: Rejected - Error on table KAT_OPCINA.
ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-13365: layer SRID does not match geometry SRID
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 623
ORA-06512: at "MDSYS.SDO_INDEX_METHOD_10I", line 227
SQL*Loader-510: Physical record in data file (C:\TEMP\load_kat_opcina.ctl) is longer than the maximum(65536)
SQL*Loader-2026: the load was aborted because SQL Loader cannot continue.
Specify SKIP=33 when continuing the load.
Table KAT_OPCINA:
0 Rows successfully loaded.
33 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Space allocated for bind array: 215168 bytes(64 rows)
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 33
Total logical records rejected: 33
Total logical records discarded: 0
Run began on Sri Svi 31 14:20:28 2006
Run ended on Sri Svi 31 14:20:32 2006
Elapsed time was: 00:00:04.51
CPU time was: 00:00:00.26
error messages are all the same for record numbers: 3-32.
so, i'd like to know what am i doing wrong that table cannot be filled with data using sql *loader.
also, would like to know if there's another way of loading data into table from .ctl file (using maybe some other tool)
appreciate any help
thanksHi,
You receive:
ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-13365: layer SRID does not match geometry SRID
Have you created spatial index for table PORVSINA? I guess that yes, and you have created it with non NULL SRID value? So, ORA-13365 means that you are trying to insert spatial data with SRID that is not the same as SRID defined in spatial index.
Check index SRID and your data SRID, they must be the same. Or, you can disable spatial index.
Andrejus -
Oracle 11g R2, Problem Loading Spatial Data
We have a geodatabase which has been implemented by oracle spatial. it has been working quite fine since 2 years ago. Recently the data center serving our geodatabase has been upgraded on both software and hardware specifications. The handler application now has difficulty retrieving spatial data. The problem is somehow strange; only some spatial objects are loaded and then application encounters exceptions.
Previous working database engine was an Oracle 11g R1 and the new one is Oracle 11g R2. The application is a java application mostly written by swing. Here is the stack trace:
java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1200)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:202)
at oracle.jdbc.driver.T4CCallableStatement.fetch(T4CCallableStatement.java:1079)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:369)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:273)
at ir.mas.aamar.service.map.MapService.getModifiedMap(MapService.java:405)
at ir.mas.aamar.map.MapPanel.redrawLayers(MapPanel.java:504)
at ir.mas.aamar.map.LayersTree.onSnapshotDisplayCheckBoxItemChanged(LayersTree.java:420)
at ir.mas.aamar.map.LayersTree.onMouseReleased(LayersTree.java:204)
at ir.mas.aamar.map.LayersTree.access$0(LayersTree.java:188)
at ir.mas.aamar.map.LayersTree$1.mouseReleased(LayersTree.java:170)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1200)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:853)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1469)
at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:389)
at ir.mas.aamar.service.map.MapService.executeJDBCQuery(MapService.java:78)
at ir.mas.aamar.service.map.MapService.getSnapshotsForThisTermPlusHoze(MapService.java:1013)
at ir.mas.aamar.dialog.edit.EditTools.refreshLayersCombo(EditTools.java:327)
at ir.mas.aamar.dialog.edit.EditTools.refresh(EditTools.java:301)
at ir.mas.aamar.dialog.edit.EditTools.<init>(EditTools.java:103)
at ir.mas.aamar.dialog.edit.EditTools.editTools(EditTools.java:62)
at ir.mas.aamar.map.MapPanel.paintComponent(MapPanel.java:7591)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.sql.SQLRecoverableException: Closed Resultset: next
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:224)
at ir.mas.aamar.service.map.MapService.getSnapshotsForThisTermPlusHoze(MapService.java:1014)
at ir.mas.aamar.dialog.edit.EditTools.refreshLayersCombo(EditTools.java:327)
at ir.mas.aamar.dialog.edit.EditTools.refresh(EditTools.java:301)
at ir.mas.aamar.dialog.edit.EditTools.<init>(EditTools.java:103)
at ir.mas.aamar.dialog.edit.EditTools.editTools(EditTools.java:62)
at ir.mas.aamar.map.MapPanel.paintComponent(MapPanel.java:7591)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ir.mas.aamar.dialog.edit.EditTools.setTypeOfEditModel(EditTools.java:452)
at ir.mas.aamar.dialog.edit.EditTools.<init>(EditTools.java:104)
at ir.mas.aamar.dialog.edit.EditTools.editTools(EditTools.java:62)
at ir.mas.aamar.map.MapPanel.paintComponent(MapPanel.java:7591)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
I read in some forums that the problem could be caused by jdbc version incompatibility, so I just copied jdbc archives from the installed oracle 11g R2 jdbc folder but the problem persists. Last thing I should mention is that only spatial data is problemistic and non-spatial data is easily loaded.
Please Help, Thanks.Hi storm,
During the installation of oracle as you said if you have given the global password, basically this specific password will reflect to users such as
-sys
-system
-dbsnmp
-sysman
As you are new to oracle the basics that you should know is that "SYS" user is the highly privileged user in Oracle and should be logged in as "sys as sysdba" with his respective password (i.e. the global password that you have entered during database installation) to obtain his privilege. Remember to manipulate your database with caution when you are logged in as the sys user. You can log into the database using the sys user in the following way:
c\> sqlplus sys as sysdba
password: ****** --It will ask you for the password and you will have to give the global password that was given during installation
Hope this helps!!!
Regards, -
Anomaly loading spatial elements through SQLLoader
Hello all,
please see if anyone can help me with the following:
I'm loading some street segments, converted from shp files, and i'm using SRID=8292, with latitude an longitude coordinates and precision as follows:
TABLE_NAME
COLUMN_NAME
DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE)
SRID
STREET_BASE
GEOMETRY
SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', -74.594, -45.257, .000000005), SDO_DIM_ELEMEN
T('Y', -34.363, -4.72, .000000005))
8292
When the following row is inserted into Oracle Spatial 10g, it loses some coordinates and also modifies it.
* In ctl file:
217582|RS|BENTO GONCALVES|RUA|ASSIS BRASIL|
|95700000|95700000|789|919|790|920|131.376870000|0|
#2002|8292|
#1|2|1|/
#-51.5136188370|-29.1640532469|-51.5148496796|-29.1641206080|
#-51.5149537719|-29.1641201979|/
* Inside Oracle after Load:
ID
GEOMETRY(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINAT
217582
SDO_GEOMETRY(2002, 8292, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_AR
-51.514954, -29.16412))Hi Mauricio,
If I could give you a few other hints:
if your coordinate system is long/lat, you should set the bounds of the coordinate system in user_sdo_geom_metadata to -180,180 in longitude, and -90, 90 in latitude.
Also, the tolerance value for long/lat coordinate systems is specified in meters. Your very tiny values (5 nanometers) cannot help you in any way, and can hurt you. In 10g the minimum value should be 0.05
Regards,
Dan -
How to load spatial data from .shp file
Could anyone suggest an easy to use, free tool to upload spatial data from .shp file (or/and other open source spatial file sources) into an Oracle Locator database?
We have licensing for ArcGIS10, but nobody (including ArcGIS) have been able to successfully create a direct connection from their software to our Oracle 10.2 database.
Client desktops here are Windows 7 64bit, which further complicates matters (tend to find neither ArcGIS nor Oracle support 64bit OS in a cogent fashion)790951,
. . . .You can also try Oracle's ShapeFile Converter (shp2sdo). It's a command line utility so there's automation potential.
. . . .Note that ESRI's tools may (depending on how they're used) store spatial content in Oracle Spatial as BLOBs containing their ST_GEOMETRY data-type (rather than Oracle's SDO_GEOMETRY type).
Regards,
Noel -
I have been able to load spatial point data trough sqlloader with data that already contains a decimal point. My problem now is to load that implies the decimal point and trying to load whith a control file that looks like this:
lat_long column object
sdo_gtype constant 2001,
sdo_point column object
( x position (411:419) float external ":x/1000000",
y position (420:427) float external ":y/1000000")
that portion to add the decimal point work in other regular data type load.
Any idea?
nullSorry no help, Ian.
I had the same problems using field references within the object part of
the control file.
Anybody knows why? -
Need Help about Spatial Data Load - Mapviewer
Hello everybody,
I need an immediate help about spatial data load. I installed Oracle mapviwer quick start and try to work on it. However, I could not pass the load step. My questions are;
1- Where can I find and download my country's data set (spatial data)
2- With mapviwer, how can I load spatial data to my tables on database (Oracle). Those tables have sdo_geometry columns and I want to query location data, but could not load
Regards,
DilekFor Mapviewer questions, please post in the following forum:
MapViewer
Thanks -
Oracle Spatial Performance with 10-20.000 users
Does anyone have any experience when Oracle Spatial is used with say 20.000 concurrent users. I am not interested in MapViewer response time, but lets say there is:
- an app using 800 different tables each having an sdo_geometry column
- the app is configured with different tables visible on different view scales
- let's say an average of 40-50 tables is visible at any given time
- some tables will have only a few records, while other can hold millions.
- there is no client side caching
- clients can zoom in/out pan.
Anwers I am interested in:
- What sort of server would be required
- How can Oracle serve all that data (each Refresh renders the map and retrieves the data over the wire as there is no client side caching).
- What sort of network infrastructure would be required.
- Can clients connect to different servers and hence use load balancing or does Oracle have an automatic mechanism for that?
Thanks in advance,
PatrickPatrick, et al.
There are lots of things one can do to improve performance in mapping environments because of a lot of the visualisation is based on "background" or read-only data. Here are some "tips":
1. Spatially sort read-only data.
This tip makes sure that data that is close to each other in space are next to each other on disk! Dan gave a good suggestion when he referenced Chapter 14, "Reorganize the Table Data to Minimize I/O" pp 580- 582, Pro Oracle Spatial. But just as easily one can create a table as select ... where sdo_filter() where the filtering object is an optimized rectangle across the whole of the dataset. (This is quite quick on 10g and above but much slower on earlier releases.)
When implementing this make sure that the created table is created such that its blocks are next to each other in the tablespace. (Consider tablespace defragmentation beforehand.) Also, if the data is READ ONLY set the PCTFREE to 0 in order to pack the data up into as small a number of blocks as possible.
2. Generalise data
Rendering spatial data can be expensive where the data is geometrically detailed (many vertices) esp where the data is being visualised at smaller scales than it was captured at. So, if your "zoom thresholds" allow 1:10,000 data to be used at 1:100,000 then you are going to have problems. Consider pre-generalising the data (see sdo_util.simplify) before deployment. You can add multiple columns to your base table to hold this data. Be careful with polygon data because generalising polygons that share boundaries will create gaps etc as the data is more generalised. Often it is better to export the data to a GIS which can maintain the boundary relationships when generalising (say via topological relationships).
Oracle's MapViewer has excellent on-the-fly generalisation but here one needs to be careful. Application tier caching (cf Bryan's comments) can help here a lot.
3. Don't draw data that is sub-pixel.
As one zooms out objects become smaller and smaller until they reach a point where the whole object can be drawn within a single pixel. If you have control over your map visualisation application you might want to consider setting the SDO_FILTER parameter "min_resolution" flag dynamically so that its value is the same as the number of meters / pixel (eg min_resolution=10). If this is set Oracle Spatial will only include spatial objects in the returned search set if one side of a geometry's MBR is greater than or equal to this value. Thus any geometries smaller than a pixel will not be returned. Very useful for large scale data being drawn at small scales and for which no selection (eg identify) is required. With Oracle MapViewer this behaviour can be set via the generalized_pixels parameter.
3. SDO_TOLERANCE, Clean Data
If you are querying data other than via MBR (eg find all land parcels that touch each other) then make sure that your sdo_tolerance values are appropriate. I have seen sites where data captured to 1cm had an sdo_tolerance value set to a millionth of a meter!
A corollary to this is make sure that all your data passes validation at the chosen sdo_tolerance value before deploying to visualisation. Run sdo_geom.validate_geometry()/validate_layer()...
4. Rtree Spatial Indexing
At 10g and above lots of great work went in to the RTree indexing. So, make sure you are using RTrees and not QuadTrees. Also, many GIS applications create sub-optimal RTrees by not using the additional parameters available at 10g and above.
4.1 If your table/column sdo_geometry data contains only points, lines or polygons then let the RTree indexer know (via layer_gtype) as it can implement certain optimizations based on this knowledge.
4.2 With 10g you can set the RTree's spatial index data block use via sdo_pct_free. Consider setting this parameter to 0 if the table/column sdo_geometry data is read only.
4.3 If a table/column is in high demand (eg it is the most commonly used table in all visualisations) you can consider loading (a part of) the RTree index into memory. Now, with the RTree indexing, the sdo_non_leaf_tbl=true parameter will split the RTree index into its leaf (contains actual rowid reference) and non-leaf (the tree built on the leaves) components. Most RTrees are built without this so only the MDRT*** secondary tables are built. But if sdo_non_leaf_tbl is set to true you will see the creation of an additional MDNT*** secondary table (for the non_leaf part of the rtree index). Now, if appropriate, the non_leaf table can be loaded into memory via the following:
ALTER TABLE MDNT*** STORAGE(BUFFER_AREA KEEP);
This is NOT a general panacea for all performance problems. One should investigate other options before embarking on this (cf Tom Kyte's books such as Expert Oracle Database Architecture, 9i and 10g Programming Techniques and Solutions.)
4.4 Don't forget to check your spatial index data quality regularly. Because many sites use GIS package GUI tools to create tables, load data and index them, there is a real tendency to not check what they have done or regularly monitor the objects. Check the SDO_RTREE_QUALITY column in USER_SDO_INDEX_METADATA and look for indexes with an SDO_RTREE_QUALITY setting that is > 2. If > 2 consider rebuilding or recreating the index.
5. The rendering engine.
Whatever rendering engine one uses make sure you try and understand fully what it can and cannot do. AutoDesk's MapGuide is an excellent product but I have seen it simply cache table/column data and never dynamically access it. Also, I have been at one site which was running Deegree and MapViewer and MapViewer was so fast in comparison to Deegree that I was called in to find out why. I discovered that Deegree was using SDO_RELATE(... ANYINTERACT ...) for all MBR queries while MapViewer was using SDO_FILTER. Just this difference was causing some queries to perform at < 10% of the speed of MapViewer!!!!
6. Consider "denormalising" data
There is an old adage in databases that is "normalise for edit, denormalise for performance". When we load spatial data we often get it from suppliers in a fairly flat or normalised form. In consort with spatial sorting, consider denormalising the data via aggregations based on a rendering attribute and some sort of spatial unit. For example, if you have 1 million points stored as single points in SDO_GEOMETRY.SDO_POINT which you want to render by a single attribute containing 20 values, consider aggregating the data using this attribute AND some sort of spatial BUCKET or BIN. So, consider using SDO_AGGR_UNION coupled with Spatial Analysis and Mining package functions to GROUP the data BY <<column_name>> and a set of spatial extents.
6. Tablespace use
Finally, talk to your DBA in order to find out how the oracle database's physical and logical storage is organised. Is a SAN being used or SAME arranged disk arrays? Knowing this you can organise your spatial data and indexes using more effective and efficient methods that will ensure greater scalability.
7. Network fetch
If your rendering engine (app server) and database are on separate machines you need to investigate what sort of fetch sizes are being used when returning data from queries to the middle-tier. Fetch sizes for attribute only data rows and rows containing spatial data can be, and normally are, radically different. Accepting the default settings for these sizes could be killing you (as could the sort_area_size of the Oracle session the application server has created on the database). For example I have been informed that MapInfo Pro uses a fixed value of 25 records per fetch when communicating with Oracle. I have done some testing to show that this value can be too small for certain types of spatial data. SQL Developer's GeoRaptor uses 100 which is generally better (but this one can modify this). Most programmers accept defaults for network properties when programming in ADO/ODBC/OLEDB/JDBC: just be careful as to what is being set here. (This is one of the great strengths of ArcSDE: its TCP/IP network transport is well written, tuneable and very efficient.)
8. Physical Format
Finally, while Oracle's excellent MapViewer requires data its spatial data to be in Oracle, other commercial rendering engines do not. So, consider using alternate, physical file formats that are more optimal for your rendering engine. For example, Google Earth Enterprise "compiles" all the source data into an optimal format which the server then serves to Google Earth Enterprise clients. Similarly, a shapefile on local disk to the application server (with spatial indexing) may be faster that storing the data back in Oracle on a database server that is being shared with other business databases (eg Oracle financials). If you don't like this approach and want to use Oracle only consider using a dedicated Oracle XE on the application server for the data that is read only and used in most of your generated maps eg contour or drainage data.
Just some things to think about.
regards
Simon -
Easy Loader creates Additional tables in Oracle 10G
Hellow everybody
I have uploaded a MapInfo TAB file into OracleSpatial 10G, using EasyLoader utility in MapInfo prof 8.0. To my surprise I found some additional tables created apart from the loaded spatial table. They are
BIN$3K6Am/kGSH6qQR1cSxw1yQ==$0
BIN$uL2fNlZOTHGh1erc17qOIw==$0
BIN$/0NNB59pSo6Bl8t/LzxsQg==$0
BIN$onUlr5+ASVieMUvi/y36rA==$0
What are these tables? and why are they created?
Regards
SunnyThose tables are not created by Easyloader.- at least not directly.
Starting with 10g, the database now contains a "recycle bin" much like the NTFS file system. Whenever you drop a table, that table does not really get dropped: it gets renamed to objects with obscure names (like BIN$onUlr5+ASVieMUvi/y36rA==$0).
You can see the actual names of the objects in your recyble bin by doing:
SQL> select * from recyclebin;
And restore (undrop) a table by doing, for example:
SQL> flashback my_table to before drop;
So, either you dropped some tables before (or after) running easyloader, or possibly easyloader created some tables which it then dropped.
Oh, and I forgot. To clear out your bin, do:
SQL> purge recyclebin;
If you intend to use this feature, I strongly recommend that you first read the admin manual first (section titled "Using Flashback Drop and Managing the Recycle Bin") - available here: http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10739/tables.htm#sthref2006 -
Using SqlLoader load the table into DB
Hi How do I invoke Sql Loader to be used in MapInfo to load data into db and o make sure the projections and I do not want to "Create Spatial Index" and "Create Mi_Style" when running SqlLoader.or is it better to use EasyLoader at mapInfo?
Where do I find SQl* Loader option?I thought it was a default?Hi Guys,
I answered my own Q,Sorry for the inconvenince.A little information of Sql*Loader,FME and mapInfo EasyLoader.If anybody has more information about FME and how the data governance work around it , please do share some links.Cheers!
SQL*Loader can load spatial data, but it does not understand Geographic Information System (GIS) vendor exchange formats, such as ESRI shapefiles, MapInfo Tab files,Autodesk DWG files, or Microstation DGN files.
Each major GIS vendor has their own tool to import their exchange formats into Oracle’s SDO_GEOMETRY format. There are also universal translation products, such as Feature Manipulation Engine (FME) by Safe Software, that can load numerous vendor formats into the SDO_GEOMETRY data type.FME can also extract data stored in Oracle’s SDO_GEOMETRY data type and translate
it to any of FME's supported GIS vendor formats.
Since ESRI shapefiles are a very common exchange format, Oracle posts a free utility,shp2sdo, on the Oracle Technology Network. You can download this utility from the following URL: http://otn.oracle.com/products/spatial. The utility is unsupported byOracle, but is an excellent tool that has been tested extensively. The tool is unsupportedbecause it is coded with shareware to read shapefiles. The shp2sdo utility readsgeometries and attributes from a shape file.
It then creates:
• A SQL script to create the corresponding Oracle table, and associated metadata
required for the SDO_GEOMETRY column
• A control file for the Oracle Import utility
If you are using Oracle’s shp2sdo utility, after data load it is recommended that you run the SDO_MIGRATE.TO_CURRENT procedure to migrate the data to the latest format recommended by Oracle. If you are using a GIS vendor utility, or Safe Software’s FME product, it is not necessary to run SDO_MIGRATE.TO_CURRENT. -
Loading & converting geographical data to/in hana
Current situation:
source system: MS SQL Server 2008 containing spatial data
SAP DS is our core loading technique
SAP HANA our target.
In HANA there is the column type ST_GEOMETRY or ST_POINT that can hold the geographical specific data. There are also functions how to use them (ST_Distance for example)...... but the main question is: how can i load this kind of data to HANA?
Within SAP DS there is no special column type like ST_GEOMETRY:
When trying to use blob (binary like spatial data) the DS failes. So my main question is, how can i correctly load geographical data from a non SAP system?Hi Henk,
Officially only loading spatial data from HANA and Oracle is certified with Data Services 4.2. When loading from Oracle, Data Services is generating a Sql statement that contains a function to convert the Oracle spatial field to WKT. See http://en.wikipedia.org/wiki/Well-known_text
You could try to build a view in Sql Server that does the same. The geometry field in HANA is recognized by Data Services as a long (Hana sps7) or blob (Hana sps8), so you need a query statement that converts the output of your spatial field from the view into the appropriate data type in Hana. I'm not sure if its correctly loaded into Hana, but its the best you can do with the latest Data Services version.
Another option would be to load Esri shape files into Hana, but thats a manual operation.
Best regards,
Stefan Koster -
I have applied patch to upgrade Oracle E-business suite(11.5.10) database from 9.2.0.5 to 9.2.0.8. but after applying patch also it showing 9.2.0.5. please help me.
Thanks Hussain for ur reply
server OS is windows server 2003 std. i have performed following steps
1. First I installed 11.5.10.2 Technology Stack Validation Patch (Revision 1 July, 2005) on both application (D:\Oracle\visappl) and database (D:\oracle\Visdb\9.2.0) home. (p4318672_11i_GENERIC.zip)
2. Then I review the html log file generated for both the home. Html file generated for oracle home with ALL PASS status. But html file for DBMS oracle home has return FAIL status. I review the reason in txkVal11510MP_DB.html. it gives me following reason to fail
“11.5.10.2 requires that your Oracle 9iR2 database version to be 9.2.0.6.0 or higher on Windows platform. Please refer to Oracle MetaLink Note 216550.1 "Oracle Applications Release 11i with Oracle 9i Release 2 (9.2.0)" to upgrade to the latest certified version of Oracle 9iR2. After upgrading to 9.2.0.6, you must apply 9.2.0.6 patch 5 ( 4287598 ) before upgrading to 11.5.10.2. “
3. I went through the Metalink Note 216550.1. I refer Section 2 of it. I applied patch 5035661. when I applied this patch , output of this patch mentioned that OUI 2.2 is already installed on both the Home.
4. Then I applied 9.2.0.6 patch 5 (4287598). Prior to this I applied patch 2617419 because patch 4287598 require OPatch 1.0.0.0.52.
5. I performed patch 4287598 post installation task also. I didn’t apply windows patch 6, because my database was not showing 9.2.0.8 as required by windows patch 6.
6. so this is the complete task list I have done to upgrade database from 9.2.0.5 to 9.2.0.8
output of given query is as below:
Oracle9i Catalog Views 9.2.0.5.0 VALID
Oracle9i Packages and Types 9.2.0.5.0 VALID
Oracle9i Real Application Clusters 9.2.0.5.0 INVALID
JServer JAVA Virtual Machine 9.2.0.5.0 VALID
Oracle XDK for Java 9.2.0.7.0 VALID
Oracle9i Java Packages 9.2.0.5.0 VALID
Oracle interMedia 9.2.0.1.0 LOADED
Spatial 9.2.0.5.0 VALID
Oracle Text 9.2.0.5.0 VALID
OLAP Analytic Workspace 9.2.0.5.0 LOADED
Oracle OLAP API 9.2.0.5.0 LOADED
OLAP Catalog 9.2.0.5.0 VALID -
I am trying to load spatial data into a database with SQL*Loader and it work, after that i valid each geometry in the spatial column by calling SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT() then oracle show me that the connection gateway is "EOF" and the connection break off, even calling the SDO_GEOM.SDO_AREA() it show me the same message too. I wonder that if the original data is wrong, maybe the MDSYS.SDO_ELEM_INFO_ARRAY does not match the MDSYS.SDO_ORDINATE_ARRAY, could this problem happen, or it should show me the information if the geometry is invalid rather than break the connection.
here is the record with problem, can somebody try this and tell me why it wrong, thanks!
ID
SHAPE(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
66894
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1005, 41, 1, 2, 1, 3, 2, 1
, 5, 2, 2, 9, 2, 1, 11, 2, 1, 13, 2, 1, 15, 2, 1, 17, 2, 1, 19, 2, 1, 21, 2, 1,
23, 2, 1, 25, 2, 2, 29, 2, 1, 31, 2, 1, 33, 2, 1, 35, 2, 1, 37, 2, 1, 39, 2, 1,
41, 2, 1, 43, 2, 2, 47, 2, 2, 51, 2, 2, 55, 2, 2, 59, 2, 2, 63, 2, 1, 65, 2, 1,
67, 2, 1, 69, 2, 1, 71, 2, 1, 73, 2, 1, 75, 2, 1, 77, 2, 1, 79, 2, 1, 81, 2, 1,
83, 2, 1, 85, 2, 1, 87, 2, 1, 89, 2, 2, 93, 2, 2, 97, 2, 1, 99, 2, 1, 101, 2005,
36, 101, 2, 1, 103, 2, 1, 105, 2, 1, 107, 2, 1, 109, 2, 1, 111, 2, 1, 113, 2, 1
, 115, 2, 1, 117, 2, 1, 119, 2, 2, 123, 2, 1, 125, 2, 1, 127, 2, 1, 129, 2, 1, 1
ID
SHAPE(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
31, 2, 1, 133, 2, 1, 135, 2, 1, 137, 2, 1, 139, 2, 1, 141, 2, 1, 143, 2, 2, 147,
2, 1, 149, 2, 1, 151, 2, 1, 153, 2, 1, 155, 2, 1, 157, 2, 1, 159, 2, 1, 161, 2,
1, 163, 2, 2, 167, 2, 1, 169, 2, 1, 171, 2, 1, 173, 2, 1, 175, 2, 1, 177, 2, 2)
, SDO_ORDINATE_ARRAY(271414.83, 2750721.49, 271423.33, 2750724.49, 271427.9, 275
0724.17, 271430.81, 2750720.62, 271431.75, 2750717.32, 271433.41, 2750711.45, 27
1435.08, 2750705.6, 271436.73, 2750699.76, 271438.4, 2750693.9, 271440.07, 27506
88.01, 271441.67, 2750682.38, 271444.34, 2750672.98, 271443.83, 2750668.38, 2714
40.26, 2750665.43, 271439.22, 2750665.1, 271434.58, 2750663.65, 271429.78, 27506
62.14, 271431.92, 2750654.42, 271442.58, 2750657.77, 271457.91, 2750662.59, 2715
ID
SHAPE(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
01.57, 2750676.29, 271503.802, 2750677.21, 271505.84, 2750678.51, 271508.65, 275
0681.37, 271510.53, 2750684.91, 271510.857, 2750685.95, 271511.1, 2750687.01, 27
1511.328, 2750690.41, 271510.72, 2750693.77, 271510.69, 2750693.89, 271510.65, 2
750694, 271508.68, 2750699.96, 271506.64, 2750706.14, 271504.61, 2750712.3, 2715
02.56, 2750718.51, 271500.52, 2750724.69, 271498.47, 2750730.9, 271496.42, 27507
37.09, 271494.4, 2750743.23, 271492.4, 2750749.28, 271508.7, 2750756.58, 271508.
26, 2750758.07, 271497.38, 2750755.89, 271490.7, 2750752.9, 271488.86, 2750754.3
, 271486.62, 2750754.88, 271485.43, 2750754.84, 271484.27, 2750754.55, 271414.36
, 2750729.8, 271414.83, 2750721.49, 271486.87, 2750740.54, 271488.04, 2750737, 2
ID
SHAPE(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
71489.99, 2750731.07, 271491.97, 2750725.08, 271493.91, 2750719.2, 271495.87, 27
50713.26, 271497.81, 2750707.37, 271499.77, 2750701.43, 271503.05, 2750691.49, 2
71502.7, 2750686.9, 271499.17, 2750683.92, 271496.95, 2750683.22, 271491.92, 275
0681.64, 271486.95, 2750680.08, 271485.42, 2750679.6, 271470.98, 2750675.07, 271
469.56, 2750674.62, 271464.92, 2750673.17, 271460.31, 2750671.72, 271455.65, 275
0670.26, 271455.6, 2750670.24, 271451.01, 2750670.68, 271448.13, 2750674.28, 271
445.73, 2750682.74, 271444.01, 2750688.77, 271442.3, 2750694.8, 271440.59, 27507
00.83, 271438.87, 2750706.85, 271437.16, 2750712.88, 271435.45, 2750718.9, 27143
4.52, 2750722.17, 271434.99, 2750726.8, 271438.49, 2750729.86, 271443.7, 2750731
ID
SHAPE(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
.7, 271453.11, 2750735.03, 271465.52, 2750739.42, 271472.76, 2750741.99, 271479.
24, 2750744.28, 271483.84, 2750744.02, 271486.87, 2750740.54)) -
Update a "point" table with the poly_id the point belongs to
Sorry, I'm re-posting this message as I initially included in my previous question!
Hi,
Dan, thanks for your help on "improving performance in loading spatial data" question.
Yes, after droping the spatial index it worked much quicker!
Now I have another problem with the table I've managed to populate at a decent speed (with your help!)
There is a column, poly_id which is the polygon the point belongs to. There is another table that stores all the polygons.
I tried the following PL/SQL code but again, it takes ages to run, regardless of having the table indexed or not.
So the tables are
Measurements - unit_id, start_time,relative_time,meas_point,meas_type,dv_id,poly_id
and
areas - poly_id,poly_name,polygon,layer
And the code is
PROCEDURE upd_meas
IS
CURSOR pos_cur IS
SELECT * FROM measurements;
BEGIN
FOR pos_rec IN pos_cur LOOP
UPDATE measurements SET poly_id = (select poly_id from areas a WHERE layer='MAR'
and mdsys.sdo_filter(a.polygon,pos_rec.meas_point,'querytype=WINDOW' ) = 'TRUE'
and rownum =1)
WHERE relative_time=pos_rec.relative_time
AND meas_type=pos_rec.meas_type
AND unit_id=pos_rec.unit_id;
COMMIT;
END LOOP;
END;
Any hint on how to improve the performance? I've also tried sdo_relate without any difference in the execution time.
With thanks in advance,
SilviaHi Silvia,
Is there an index on the layer column in the areas table? If so, you may want to use the noindex hint
so it doesn't get used instead of the spatial index. For more info on hints check the Oracle doc for
Designing an Tuning for Performance.
I would use SQL*PLUS to prototype getting a fast response from a filter or relate call (only - not in the context
of the update statement), then use that syntax in spatial portion of the pl/sql update statement.
The spatial portion of the query to test might look something like this:
select /*+NO_INDEX(a layer_idx_name) */ poly_id from areas a WHERE layer='MAR'
and mdsys.sdo_filter(a.polygon,pos_rec.meas_point,'querytype=WINDOW' ) = 'TRUE'
and rownum =1;
or
select /*+ index (a polygon_spatial_idx_name) */...
Hope this helps,
Dan -
Dba_registry table showing different versions.
Hi DBA's
my database version is 9.2.0.6, but following are showing different versions, is there any cause to the database?
Oracle XDK for Java 9.2.0.8.0 VALID
Oracle interMedia 9.2.0.1.0 LOADED
SQL> col comp_name for a40
col version for a15
select comp_name, version, status FROM dba_registry;
SQL> SQL>
COMP_NAME VERSION STATUS
Oracle9i Catalog Views 9.2.0.6.0 VALID
Oracle9i Packages and Types 9.2.0.6.0 VALID
Oracle9i Real Application Clusters 9.2.0.6.0 INVALID
JServer JAVA Virtual Machine 9.2.0.6.0 VALID
Oracle XDK for Java 9.2.0.8.0 VALID
Oracle9i Java Packages 9.2.0.6.0 VALID
Oracle interMedia 9.2.0.1.0 LOADED
Spatial 9.2.0.6.0 VALID
Oracle Text 9.2.0.6.0 VALID
OLAP Analytic Workspace 9.2.0.6.0 LOADED
Oracle OLAP API 9.2.0.6.0 LOADED
COMP_NAME VERSION STATUS
OLAP Catalog 9.2.0.6.0 VALID
12 rows selected.
Thanks,
SGSG,
You may also review the following note:
Note: 292017.1 - Wrong Version of Some RDBMS Components in DBA_REGISTRY After Creation of DB
https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=292017.1
Regards,
Hussein
Maybe you are looking for
-
When I add events on my iphone calendar, they show up on my mac, but when I add events to my claendar on my mac, they do not show up on my iphone, why not?
-
Error while create or mount a repository in MDM
Hi, after installing SAP MDM 5.5 SP06 and SAP MaxDB 7.6.00.35 on the same hardware (Laptop with Windows NT Client) I started MDM Console, mounted the MDM Server and then started the MDM Server (green arrow). When I try to add a repository (unarchivin
-
Adapter Module for Sender File Adapter to access a Flat file
Hi, We have a scenario where the source is a flat file.I want to develop an Adapter Module to make a small change to every line in the Flat file. Now how do we read a flat file in the Adapter Module?Coz the flat file will be converted to XML file by
-
I purchased iMatch/iCloud for my laptops and my iPhone, working well on the Windows laptops, but can't "verify" on my iphone. it says I should check an email account but I see no messages that would instruct me with what to do to correct this. help?
-
Messed up line spacing in Internet Explorer
I have pages in an outline format, with the text imported from MS Word. When viewing on IE 6, there is the occasional line that appears double-spaced. In IE 7 the spacing for those lines is a bit more than normal, but okay. Has anyone else encountere