Viewing Georaster data

Hi guys,
I am using a oracle 10g,geospatial DB,I loaded an image to the georaster database.
If I need to view this image,according to the manual I need to use georasterviewer else export it out as an image then view it.
Is there a way or sql/plsql so I can include it to view on my viewer.
Thanks and Regards
Micky

Hi Micky,
If you want to view it on your viewer, your viewer will either have to understand the georaster storage format (not complicated) or export the data (sdo_geor.export) and read the exported object.
Look at the examples for:
sdo_geor.getRasterBlocks
sdo_geor.getRasterData
sdo_geor.getRasterSubset
sdo_geor.subset
Hope this helps.

Similar Messages

  • Viewing raster data in mapviewer

    I'm having some trouble with viewing raster data through oracle mapviewer.
    The raster data is already in the database, I have not loaded it in with mapbuilder, and don't want to have to load it in again.
    I've following the step suggested which were:
    - georeference the data
    -create the spatial extent
    - created a row in the user_sdo_geom_metadata table
    - created a spatial index on the spatial extent of the georaster table.
    I have created a theme for it in mapbuilder, but get the error below when I try to preview it. Anyone any ideas?
    java.sql.SQLException: ORA-22925: operation would exceed maximum size allowed for a LOB
    value
    ORA-06512: at "MDSYS.SDO_GEOR_INT", line 2764
    ORA-06512: at "MDSYS.SDO_GEOR", line 805
    ORA-06512: at "MDSYS.SDO_GEOR", line 2764
    ORA-06512: at line 9
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.j
    ava:944)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:
    1222)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStat
    ement.java:3381)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.ja
    va:3482)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.ja
    va:3839)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedState
    mentWrapper.java:1085)
    at oracle.spatial.georaster.JRaster.getRasterSubset(JRaster.java:635)
    at oracle.spatial.georaster.image.GeoRasterImage.getRasterImage(GeoRasterImage.j
    ava:605)
    at oracle.sdovis.theme.GeoRasterThemeProducer.prepareData(GeoRasterThemeProducer
    .java:1039)
    at oracle.sdovis.GeoRasterTheme.prepareData(GeoRasterTheme.java:95)
    at oracle.sdovis.LoadThemeData.run(LoadThemeData.java:75)
    java.lang.NullPointerException
    at oracle.spatial.georaster.JRaster.getRasterSubset(JRaster.java:718)
    at oracle.spatial.georaster.image.GeoRasterImage.getRasterImage(GeoRasterImage.j
    ava:605)
    at oracle.sdovis.theme.GeoRasterThemeProducer.prepareData(GeoRasterThemeProducer
    .java:1039)
    at oracle.sdovis.GeoRasterTheme.prepareData(GeoRasterTheme.java:95)
    at oracle.sdovis.LoadThemeData.run(LoadThemeData.java:75)

    Did you create pyramids for your GeoRaster? You may be exceeding some limits for the LOB, and you should create the pyramids. Returning a huge block image to display may not be appropriate and is not effective in terms of performance and memory use.
    Joao

  • How Can a User Access Georaster Data Owned by Another User

    We are unable to view raster data owned by one user with another user.
    Have a user that owns a Georaster table, and a spatial index table.
    We create another user, and grant him "SELECT", or "ALL" to these two tables.
    We still run into problems where the second user can not see some other table from the first user, so we run until we get an error message about some table, grant access to the table, and the next table, until we finally receive an error when trying to grant access to some table.
    "grant select on LGGI_DSC_COL_DBL_DATA_81 to schen;"
    ERROR at line 1:
    ORA-01720: grant option does not exist for 'LEICASYS.EDSC_VARRAY_DBL'
    Here are the users, and tables specific to our example
    User A: ORTHO (supplier)
    User B: SCHEN (consumer)
    We are trying to allow SCHEN view data from the raster table ORTHO.DEMOTB
    We grant SCHEN "ALL" on ORTHO.DEMOTB, ORTHO.LGGI_RDT_ORTHO_C1, ORTHO.LGGI_DSC_COL_MAP, then we fail granting access to ORTHO.LGGI_DSC_COL_DBL_DATA_81
    What are we doing wrong, it seems like this is a common work flow, we must be missing something obvious.

    Derrick,
    I suppose mashing up both Dan's answer and mine in this case is your best (and only option). The error, ORA-01720: grant option does not exist for 'LEICASYS.EDSC_VARRAY_DBL', is pointing to the fact that you not only have a GeoRaster table with GeoRaster and other native Oracle types, but also some extra user defined types (UDT) which your group has built to store nested arrays of information. Because the UDT in the table is its own object (just like a table is its own object) you must ALSO grant privileges to the UDT in order to use them in a cross-schema setup.
    In other words, this is not a simple "how do I use GeoRaster across schemas" question; this is a "how do I use GeoRaster, plus other UDTs that I have defined myself, across schemas" question.
    In this case you will have to login as a DBA or the user who created the EDSC_VARRAY_DBL type (LEICASYS), and specifically grant privileges on this type. Does that make sense? I know it's more work than what I alluded to before, but this is a different problem outside of the scope of GeoRaster.
    Finally, I work for Leica Geosystems, and noticed that your schema is called LEICASYS. If you would like to contact me directly you may do so at Justin dot Lokitz at lggi dot com.
    -Justin

  • Getting an error while viewing a data in owb

    Hi,
    I created an External table based on a flat file. But I am not able to view the data in the external table while the flat file has the data.
    I am using this external table as a source in my mapping but no data is getting loaded even after the successful execution of the mapping.I am getting the following error while viewing the data
    ORA-29913: error in executing ODCIEXTTABLEFETCH callout
    ORA-29400: data cartridge error
    KUP-04040: file ATLAS in ATLAS_LOCATION1 not found
    Please help me regarding this. I am new to the owb 11g.

    Thanks for you reply. Still I can't view the data. Actually what i did is imported a .csv file using files then created a external table configured , validated and deployed.In next step created a mapping with this excel this using table operator validated and genrated code. In next step using the control center manager i deployed it. But i can't view the data still in the external table.
    Is this procedure is correct for loading the excel sheet in to databse. My client environment is on windows xp and database is on linux environment.
    Please help me regarding this.I am new to owb.

  • Can't view my data on my table in EM

    Can anyone tell me why I am getting the error below after executing my control file and also why I can't view that data which was loaded.
    SQL*Loader: Release 10.2.0.1.0 - Production on Thu Jul 12 16:28:57 2007
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Control File: workattribute2.ctl
    Data File: workattribute.dat
    Bad File: workattribute.bad
    Discard File: none specified
    (Allow all discards)
    Number to load: ALL
    Number to skip: 0
    Errors allowed: 50
    Bind array: 64 rows, maximum of 256000 bytes
    Continuation: none specified
    Path used: Conventional
    Table WORKATTRIBUTE, loaded from every logical record.
    Insert option in effect for this table: APPEND
    Column Name Position Len Term Encl Datatype
    RESUMEID FIRST * CHARACTER
    Terminator string : 'x'09''
    WORKID NEXT * CHARACTER
    Terminator string : 'x'09''
    ID NEXT * CHARACTER
    Terminator string : 'x'09''
    TYPE NEXT * CHARACTER
    Terminator string : 'x'09''
    Record 1: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 2: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 3: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 4: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 5: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 6: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 7: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 8: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 9: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 10: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 11: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 12: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 13: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 14: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 15: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 16: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 17: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 18: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 19: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 20: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 21: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 22: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 23: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 24: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 25: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 26: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 27: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 28: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 29: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 30: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 31: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 32: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 33: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 34: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 35: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 36: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 37: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 38: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 39: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 40: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 41: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 42: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 43: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 44: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 45: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 46: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 47: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 48: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 49: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 50: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    Record 51: Rejected - Error on table WORKATTRIBUTE, column RESUMEID.
    Field in data file exceeds maximum length
    MAXIMUM ERROR COUNT EXCEEDED - Above statistics reflect partial run.
    Table WORKATTRIBUTE:
    0 Rows successfully loaded.
    51 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: 66048 bytes(64 rows)
    Read buffer bytes: 1048576
    Total logical records skipped: 0
    Total logical records read: 51
    Total logical records rejected: 51
    Total logical records discarded: 0
    Run began on Thu Jul 12 16:28:57 2007
    Run ended on Thu Jul 12 16:29:05 2007
    Elapsed time was: 00:00:08.09
    CPU time was: 00:00:00.12
    thank you in advance

    Hi User572297,
    This is the wrong forum for a SQL Loader Q, not a bad thing, you just won't get as many responses.
    That said, it seems either your terminator string is not present, incorrect or you are simply trying to load to many characters into a column that is too small. For ex: trying to load 50 characters into a Varchar2(40). You get this error for every row, hence you can not see any of the data, becuase none of the rows loaded. See below:
    0 Rows successfully loaded.
    51 Rows not loaded due to data errors.
    What would help is to know the datatype and size of the RESUMEID column AND to see the first lines of your workattribute.dat file.

  • Can't view changed data in journal data

    Hi,
    I have implemented JKM Oracle 10g Consistent Logminer on Oracle 10g with the following option.
    - Asynchronous_mode : yes
    - Auto_configuration : yes
    1. Change Data Capture -> Add to CDC, 2.Subscriber->subscribe (sunopsis),
    3. Start Journal
    The journal has been started correctly wothout errors. The journalized table has always the symbol "green clock". All is gook working.
    And then i inserted 1 record in source table, but i can't view changed data in journal data. I can't understand why journal data was generated.
    There are no errors.
    Help me !!!

    Did your designer was on the good context ?
    Look the list box at the top right of the Designer interface.
    You must have the same as the one where you define your journalization.

  • I was told of an application that will allow the use of a second screen to view my data and files, but I forgot its name. I'd like to make the connection because my LCD is broken.

    I was told of an application that will allow the use of a second screen to view my data and files, but I forgot its name. I'd like to make the connection because my LCD is broken.

    You don't need an application, just plug a compaitble monitor into the display port of your MacBook Pro, set the screen up in System Preferences>Displays

  • When attempting to view the date track history for one employee, errors out

    Hi All
    When I attempt to view the date track history for one employee, it gives errors.
    To get the details, the navigation is :
    1. Search for employee xxxxxx
    2. click on Assignment button
    3. click on Date Track History.
    4. Receive error APP-DT-52554.
    5. Click OK on error message
    6. click on Full History button.
    7. Receive error APP-PAY-06153
    What could be the problem and how to solve this?
    Regards
    Rahman

    Sounds as if there is an inconsistency with the date tracked records. Can you check the records through TOAD or SQL Plus?
    Have alook at MetaLInk article 343070.1 which refers to the second error message.
    Regards
    Tim

  • Not able to view XML data

    Hello All,
    I want to generate xml data file from sql query.So i created a new report and new data model whose type is SQL query and following is the query
    select p.name as name,s.size_desc as sizes,sum(f.quantity) as quantity
    from s_article_poc14073 p,s_size_poc14073 s,s_factsize_poc14073 f
    where p.id = f.prod_id and s.size_id = f.size_id and p.id > 4
    group by p.name,s.size_desc
    order by 1
    I have not given any Layout and when i view the data ,i get only the folowing
    <?xml version="1.0" encoding="UTF-8" ?>
    <ROWSET />
    Therez no error with the sql query ,any help on this please
    Thanks in advance
    Sulakshana

    Hi,
    Yes my query returns rows when i run directly from the backend.
    I have not defined any layout,because i just want the data to be generated as a xml file.
    Thanks
    Sulakshana

  • Unable to  view the data in infoobject

    Hi all,
    I am loading the data to info-obj this is the first time i am working on BI 7. everything is successfull. i had created the transformation and dtp successfully n in monitor screen its showing that the data has been loaded sucessfully. the thing is i didnt maintain a infosource as i am loading the data from the only one DS to one info obj. i am able to view the data in the psa but when i try to view the data in the infoobject its not der.
    plz help me out
    Thank & Regards
    KK

    Since you are using BI 7 for the first time., I hope you have executed the DTP after executing the infopackage.
    In BW 3.5 we can load date from data source to Infoobject via PSA in one shot.
    But In BI 7, we have to execute the infopackage first . This loads data from Datasource to PSA. Then you need to execute the DTP. Just double click on the DTP. You can see the execute in the third tab. When you execute the DTP, data will be further loaded from PSA to Infoobject.

  • I can view the data in front end form, but data is not avilable in backend

    Hi,
    i created a form with three blocks.In first block i entered the data.Based on the data it will fetch recodrs from A & B tables and insert into C table.This logic i have written in backend and put commit in front end and back end. In the 2nd block iam using C table. i can view the data in front end(C table) . But i unable to
    see the data in C table when i go and see in back end.
    Form is used for only querying purpose. for the C block insert allowed and update allowed is false.
    Plz do the need ful

    Please try and post sufficient information for someone to replicate your problem. We are not looking over your shoulder and do not have access to your database.
    We need a minimum table structure, example data, a walk-through of how the form works - you mention 3 blocks and only half-way describe 1. Is another for the C block? Or is that a different form?
    e.g. Enter search data in Block A. Execute Query. Blocks A and B populated with data from database tables based on FK relationship B to A. User presses Save button, procedure in form updates table C based on data in form and issues commit. Execute Query in Block C retrieves just inserted data in table C.
    Is that remotely what's happening? Or something completely different?

  • How to add an index to a materialized view in Data Modeler 3.3

    Hello everyone,
    I'm looking for a how-to to add an index to a materialized view in Data Modeler 3.3.0.747, as I coudn't find a way to do it so far.
    I looked here:
    Relational Model
    Physical Model
    Oracle 11g
    Materialized Views
    "my_mv_name"
    "INDEXES" IS NOT HERE IN THE TREE
    "Tables" does not include it either
    Thank you & Best regards,
    Blama

    Hi David,
    thanks a lot. I did so and it worked, but I found a minor bug while doing so:
    I marked the table as "Implement as Materialized View" and went to File->Export->DDL (for Oracle 11g).
    The generated code (I checked all options in "Drop Selection") includes a row:
    DROP MATERIALIZED VIEW mv_mymatview CASCADE CONSTRAINTS ;
    which produces a syntax error.
    Best regards,
    Blama

  • How can i view the data from Access DB in oracle

    pls tell me that how can i view the data of MS ACCESS DATABASE in ORACLE.i was use ODBC of ACCESS DATABASE AND THEN CREATE DATABASE LINK IN ORACLE BUT NOT YET SUCCEEDED.PLS TELL ME THE PROCEDURE.
    regard's

    hi,
    u nedd to use Oracle Hetrogeneous Services,,
    full details of the procedure u may fing on metalink
    Regards

  • Issue in viewing the data

    Hi All,
    We are working on EP 6 and ECC 6 and facing a problem of viewing the data.
    For Ex :
    When we log in to the portal and click on any of the hyperlinks provided for example Who's Who or in Personnel Information => Address ..the link dosen't work or open at all neither we get any errors.
    We have assigned all the roles required for the User and also in IT 0105 subtype 0001 is mainted.
    Request you all to let me know reasons
    Thanks for all your support.
    Thanks
    YM

    Hi Sridhar,
    Thanks for your valauble inputs.
    I did review the config and found that the PERNR is assigned. The SPRO config also looks fine.
    One more thing is that our Basis Consultant is able to view and edit the details. He has superuser roles and J2EE admin roles, but as per my knowlegde these roles are not assigned to everyone.When these roles where assigned to other users they were able to view.
    So looks like Business Package is also fine then what could be the reason ???
    Please let me know
    Cheers
    YM

  • [SOLVED] Can't view Monitorix data

    I installed Monitorix on my home server and want it to work together with an Apache HTTP server. I think I configured it correctly, and I can reach Monitorix's home page, but when I click on 'OK' to view the data, instead what I get is what I assume to be a perl script:
    #!/usr/bin/env perl
    # Monitorix - A lightweight system monitoring tool.
    # Copyright (C) 2005-2015 by Jordi Sanfeliu <[email protected]>
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    # You should have received a copy of the GNU General Public License along
    # with this program; if not, write to the Free Software Foundation, Inc.,
    # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    use strict;
    use warnings;
    use FindBin qw($Bin);
    use lib $Bin . "/lib", "/usr/lib/monitorix";
    use Monitorix;
    use CGI qw(:standard);
    use Config::General;
    use POSIX;
    use RRDs;
    my %config;
    my %cgi;
    my %colors;
    my %tf;
    my @version12;
    my @version12_small;
    sub multihost {
    my ($config, $colors, $cgi) = @_;
    my $n;
    my $n2;
    my @host;
    my @url;
    my @foot_url;
    my $multihost = $config->{multihost};
    if($cgi->{val} =~ m/group(\d*)/) {
    my @remotegroup_desc;
    # all groups
    if($cgi->{val} eq "group") {
    my @remotegroup_list = split(',', $multihost->{remotegroup_list});
    for($n = 0; $n < scalar(@remotegroup_list); $n++) {
    scalar(my @tmp = split(',', $multihost->{remotegroup_desc}->{$n}));
    for($n2 = 0; $n2 < scalar(@tmp); $n2++) {
    push(@remotegroup_desc, trim($tmp[$n2]));
    # specific group
    if($cgi->{val} =~ m/group(\d+)/) {
    my $gnum = int($1);
    @remotegroup_desc = split(',', $multihost->{remotegroup_desc}->{$gnum});
    my @remotehost_list = split(',', $multihost->{remotehost_list});
    for($n = 0; $n < scalar(@remotegroup_desc); $n++) {
    my $h = trim($remotegroup_desc[$n]);
    for($n2 = 0; $n2 < scalar(@remotehost_list); $n2++) {
    my $h2 = trim($remotehost_list[$n2]);
    if($h eq $h2) {
    push(@host, $h);
    push(@url, (split(',', $multihost->{remotehost_desc}->{$n2}))[0] . (split(',', $multihost->{remotehost_desc}->{$n2}))[2]);
    push(@foot_url, (split(',', $multihost->{remotehost_desc}->{$n2}))[0] . (split(',', $multihost->{remotehost_desc}->{$n2}))[1]);
    } else {
    my @remotehost_list = split(',', $multihost->{remotehost_list});
    for($n = 0; $n < scalar(@remotehost_list); $n++) {
    push(@host, trim($remotehost_list[$n]));
    push(@url, (split(',', $multihost->{remotehost_desc}->{$n}))[0] . (split(',', $multihost->{remotehost_desc}->{$n}))[2]);
    push(@foot_url, (split(',', $multihost->{remotehost_desc}->{$n}))[0] . (split(',', $multihost->{remotehost_desc}->{$n}))[1]);
    $multihost->{graphs_per_row} = 1 unless $multihost->{graphs_per_row} > 1;
    my $graph = ($cgi->{graph} eq "all" || $cgi->{graph} =~ m/group\[0-9]*/) ? "_system1" : $cgi->{graph};
    if($cgi->{val} eq "all" || $cgi->{val} =~ m/group[0-9]*/) {
    for($n = 0; $n < scalar(@host); $n += $multihost->{graphs_per_row}) {
    print "<table cellspacing='5' cellpadding='0' width='1' bgcolor='$colors->{graph_bg_color}' border='1'>\n";
    print " <tr>\n";
    for($n2 = 0; $n2 < $multihost->{graphs_per_row}; $n2++) {
    if($n < scalar(@host)) {
    print " <td bgcolor='$colors->{title_bg_color}'>\n";
    print " <font face='Verdana, sans-serif' color='$colors->{fg_color}'>\n";
    print " <b>&nbsp;&nbsp;" . $host[$n] . "</b>\n";
    print " </font>\n";
    print " </td>\n";
    $n++;
    print " </tr>\n";
    print " <tr>\n";
    for($n2 = 0, $n = $n - $multihost->{graphs_per_row}; $n2 < $multihost->{graphs_per_row}; $n2++) {
    if($n < scalar(@host)) {
    print " <td bgcolor='$colors->{title_bg_color}' style='vertical-align: top; height: 10%; width: 10%;'>\n";
    print " <iframe src='" . $url[$n] . "/monitorix.cgi?mode=localhost&when=$cgi->{when}&graph=$graph&color=$cgi->{color}&silent=imagetag' height=201 width=397 frameborder=0 marginwidth=0 marginheight=0 scrolling=no></iframe>\n";
    print " </td>\n";
    $n++;
    print " </tr>\n";
    print " <tr>\n";
    for($n2 = 0, $n = $n - $multihost->{graphs_per_row}; $n2 < $multihost->{graphs_per_row}; $n2++) {
    if($n < scalar(@host)) {
    if(lc($multihost->{footer_url}) eq "y") {
    print " <td bgcolor='$colors->{title_bg_color}'>\n";
    print " <font face='Verdana, sans-serif' color='$colors->{title_fg_color}'>\n";
    print " <font size='-1'>\n";
    print " <b>&nbsp;&nbsp;<a href='" . $foot_url[$n] . "' style='color: " . $colors->{title_fg_color} . ";'>$foot_url[$n]</a></b>\n";
    print " </font></font>\n";
    print " </td>\n";
    $n++;
    $n = $n - $multihost->{graphs_per_row};
    print " </tr>\n";
    print "</table>\n";
    print "<br>\n";
    } else {
    print " <table cellspacing='5' cellpadding='0' width='1' bgcolor='$colors->{graph_bg_color}' border='1'>\n";
    print " <tr>\n";
    print " <td bgcolor='$colors->{title_bg_color}'>\n";
    print " <font face='Verdana, sans-serif' color='$colors->{fg_color}'>\n";
    print " <b>&nbsp;&nbsp;" . $host[$cgi->{val}] . "</b>\n";
    print " </font>\n";
    print " </td>\n";
    print " </tr>\n";
    print " <tr>\n";
    print " <td bgcolor='$colors->{title_bg_color}' style='vertical-align: top; height: 10%; width: 10%;'>\n";
    print " <iframe src='" . (split(',', $multihost->{remotehost_desc}->{$cgi->{val}}))[0] . (split(',', $multihost->{remotehost_desc}->{$cgi->{val}}))[2] . "/monitorix.cgi?mode=localhost&when=$cgi->{when}&graph=$graph&color=$cgi->{color}&silent=imagetagbig' height=249 width=545 frameborder=0 marginwidth=0 marginheight=0 scrolling=no></iframe>\n";
    print " </td>\n";
    print " </tr>\n";
    print " <tr>\n";
    if(lc($multihost->{footer_url}) eq "y") {
    print " <td bgcolor='$colors->{title_bg_color}'>\n";
    print " <font face='Verdana, sans-serif' color='$colors->{title_fg_color}'>\n";
    print " <font size='-1'>\n";
    print " <b>&nbsp;&nbsp;<a href='" . $foot_url[$cgi->{val}] . "' style='color: " . $colors->{title_fg_color} . ";'>$foot_url[$cgi->{val}]</a></b>\n";
    print " </font></font>\n";
    print " </td>\n";
    print " </tr>\n";
    print " </table>\n";
    print " <br>\n";
    sub graph_header {
    my ($title, $colspan) = @_;
    print("\n");
    print("<!-- graph table begins -->\n");
    print(" <table cellspacing='5' cellpadding='0' width='1' bgcolor='$colors{graph_bg_color}' border='1'>\n");
    print(" <tr>\n");
    print(" <td bgcolor='$colors{title_bg_color}' colspan='$colspan'>\n");
    print(" <font face='Verdana, sans-serif' color='$colors{title_fg_color}'>\n");
    print(" <b>&nbsp;&nbsp;$title</b>\n");
    print(" </font>\n");
    print(" </td>\n");
    print(" </tr>\n");
    sub graph_footer {
    print(" </table>\n");
    print("<!-- graph table ends -->\n");
    # MAIN
    open(IN, "< monitorix.conf.path");
    my $config_path = <IN>;
    chomp($config_path);
    close(IN);
    if(! -f $config_path) {
    print(<< "EOF");
    Content-Type: text/plain
    <pre>
    FATAL: Monitorix is unable to continue!
    =======================================
    File 'monitorix.conf.path' was not found.
    Please make sure that 'base_dir' option is correctly configured and this
    CGI (monitorix.cgi) is located in the 'base_dir'/cgi/ directory.
    And don't forget to restart Monitorix for the changes to take effect!
    EOF
    die "FATAL: File 'monitorix.conf.path' was not found!";
    # load main configuration file
    my $conf = new Config::General(
    -ConfigFile => $config_path,
    %config = $conf->getall;
    # load additional configuration files
    if($config{include_dir} && opendir(DIR, $config{include_dir})) {
    my @files = grep { !/^[.]/ } readdir(DIR);
    closedir(DIR);
    foreach my $c (sort @files) {
    next unless -f $config{include_dir} . "/$c";
    next unless $c =~ m/\.conf$/;
    my $conf_inc = new Config::General(
    -ConfigFile => $config{include_dir} . "/$c",
    my %config_inc = $conf_inc->getall;
    while(my ($key, $val) = each(%config_inc)) {
    if(ref($val) eq "HASH") {
    # two level options
    while(my ($key2, $val2) = each(%{$val})) {
    if(ref($val2) eq "HASH") {
    # three level options
    while(my ($key3, $val3) = each(%{$val2})) {
    $config{$key}->{$key2}->{$key3} = $val3;
    delete $config_inc{$key}->{$key2}->{$key3};
    next;
    $config{$key}->{$key2} = $val2;
    delete $config_inc{$key}->{$key2};
    next;
    # graph_name option is special
    if($key eq "graph_name") {
    $config{graph_name} .= ", $val";
    delete $config_inc{graph_name};
    next;
    # one level options
    $config{$key} = $val;
    delete $config_inc{$key};
    $config{url} = ($config{url_prefix_proxy} || "");
    if(!$config{url}) {
    $config{url} = ($ENV{HTTPS} || ($config{httpd_builtin}->{https_url} || "n") eq "y") ? "https://" . $ENV{HTTP_HOST} : "http://" . $ENV{HTTP_HOST};
    $config{hostname} = $config{hostname} || $ENV{SERVER_NAME};
    if(!($config{hostname})) { # called from the command line
    $config{hostname} = "127.0.0.1";
    $config{url} = "http://127.0.0.1";
    $config{url} .= $config{base_url};
    our $mode = defined(param('mode')) ? param('mode') : '';
    our $graph = param('graph');
    our $when = param('when');
    our $color = param('color');
    our $val = defined(param('val')) ? param('val') : '';
    our $silent = defined(param('silent')) ? param('silent') : '';
    if($mode ne "localhost") {
    ($mode, $val) = split(/\./, $mode);
    if(lc($config{httpd_builtin}->{enabled}) ne "y") {
    print("Content-Type: text/html\n");
    print("\n");
    # get the current OS and kernel version
    my $release;
    ($config{os}, undef, $release) = uname();
    if(!($release =~ m/^(\d+)\.(\d+)/)) {
    die "FATAL: unable to get the kernel version.";
    $config{kernel} = "$1.$2";
    $colors{graph_colors} = ();
    $colors{warning_color} = "--color=CANVAS#880000";
    # keep backwards compatibility for v3.2.1 and less
    if(ref($config{theme}) ne "HASH") {
    delete($config{theme});
    if(!$config{theme}->{$color}) {
    $color = "white";
    $config{theme}->{$color}->{main_bg} = "FFFFFF";
    $config{theme}->{$color}->{main_fg} = "000000";
    $config{theme}->{$color}->{title_bg} = "777777";
    $config{theme}->{$color}->{title_fg} = "CCCC00";
    $config{theme}->{$color}->{graph_bg} = "CCCCCC";
    $config{theme}->{$color}->{gap} = "000000";
    if($color eq "black") {
    push(@{$colors{graph_colors}}, "--color=CANVAS#" . $config{theme}->{$color}->{canvas});
    push(@{$colors{graph_colors}}, "--color=BACK#" . $config{theme}->{$color}->{back});
    push(@{$colors{graph_colors}}, "--color=FONT#" . $config{theme}->{$color}->{font});
    push(@{$colors{graph_colors}}, "--color=MGRID#" . $config{theme}->{$color}->{mgrid});
    push(@{$colors{graph_colors}}, "--color=GRID#" . $config{theme}->{$color}->{grid});
    push(@{$colors{graph_colors}}, "--color=FRAME#" . $config{theme}->{$color}->{frame});
    push(@{$colors{graph_colors}}, "--color=ARROW#" . $config{theme}->{$color}->{arrow});
    push(@{$colors{graph_colors}}, "--color=SHADEA#" . $config{theme}->{$color}->{shadea});
    push(@{$colors{graph_colors}}, "--color=SHADEB#" . $config{theme}->{$color}->{shadeb});
    push(@{$colors{graph_colors}}, "--color=AXIS#" . $config{theme}->{$color}->{axis})
    if defined($config{theme}->{$color}->{axis});
    $colors{bg_color} = $config{theme}->{$color}->{main_bg};
    $colors{fg_color} = $config{theme}->{$color}->{main_fg};
    $colors{title_bg_color} = $config{theme}->{$color}->{title_bg};
    $colors{title_fg_color} = $config{theme}->{$color}->{title_fg};
    $colors{graph_bg_color} = $config{theme}->{$color}->{graph_bg};
    $colors{gap} = $config{theme}->{$color}->{gap};
    ($tf{twhen}) = ($when =~ m/(hour|day|week|month|year)$/);
    ($tf{nwhen} = $when) =~ s/$tf{twhen}// unless !$tf{twhen};
    $tf{nwhen} = 1 unless $tf{nwhen};
    $tf{twhen} = "day" unless $tf{twhen};
    $tf{when} = $tf{nwhen} . $tf{twhen};
    # toggle this to 1 if you want to maintain old (2.3-) Monitorix with Multihost
    if($config{backwards_compat_old_multihost}) {
    $tf{when} = $tf{twhen};
    our ($res, $tc, $tb, $ts);
    if($tf{twhen} eq "day") {
    ($tf{res}, $tf{tc}, $tf{tb}, $tf{ts}) = (3600, 'h', 24, 1);
    if($tf{twhen} eq "week") {
    ($tf{res}, $tf{tc}, $tf{tb}, $tf{ts}) = (108000, 'd', 7, 1);
    if($tf{twhen} eq "month") {
    ($tf{res}, $tf{tc}, $tf{tb}, $tf{ts}) = (216000, 'd', 30, 1);
    if($tf{twhen} eq "year") {
    ($tf{res}, $tf{tc}, $tf{tb}, $tf{ts}) = (5184000, 'd', 365, 1);
    if($RRDs::VERSION > 1.2) {
    push(@version12, "--slope-mode");
    push(@version12, "--font=LEGEND:7:");
    push(@version12, "--font=TITLE:9:");
    push(@version12, "--font=UNIT:8:");
    if($RRDs::VERSION >= 1.3) {
    push(@version12, "--font=DEFAULT:0:Mono");
    if($tf{twhen} eq "day") {
    push(@version12, "--x-grid=HOUR:1:HOUR:6:HOUR:6:0:%R");
    push(@version12_small, "--font=TITLE:8:");
    push(@version12_small, "--font=UNIT:7:");
    if($RRDs::VERSION >= 1.3) {
    push(@version12_small, "--font=DEFAULT:0:Mono");
    if(!$silent) {
    my $title;
    my $str;
    my $piwik_code = "";
    my ($piwik_url, $piwik_sid, $piwik_img);
    # Piwik tracking code
    if(lc($config{piwik_tracking}->{enabled}) eq "y") {
    $piwik_url = $config{piwik_tracking}->{url} || "";
    $piwik_sid = $config{piwik_tracking}->{sid} || "";
    $piwik_img = $config{piwik_tracking}->{img} || "";
    $piwik_code = <<"EOF";
    <!-- Piwik -->
    <script type="text/javascript">
    var _paq = _paq || [];
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "$piwik_url";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', $piwik_sid]);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript';
    g.defer=true; g.async=true; g.src=u+'piwik.js';
    s.parentNode.insertBefore(g,s);
    </script>
    <noscript>
    <p><img src="$piwik_img" style="border:0;" alt=""/></p>
    </noscript>
    <!-- End Piwik Code -->
    EOF
    print("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2 Final//EN'>\n");
    print("<html>\n");
    print(" <head>\n");
    print(" <title>$config{title}</title>\n");
    print(" <link rel='shortcut icon' href='" . $config{url} . "/" . $config{favicon} . "'>\n");
    if($config{refresh_rate}) {
    print(" <meta http-equiv='Refresh' content='" . $config{refresh_rate} . "'>\n");
    print(" </head>\n");
    print(" <body bgcolor='" . $colors{bg_color} . "' vlink='#888888' link='#888888'>\n");
    print(" $piwik_code\n");
    print(" <center>\n");
    print(" <table cellspacing='5' cellpadding='0' bgcolor='" . $colors{graph_bg_color} . "' border='1'>\n");
    print(" <tr>\n");
    if(($val ne "all" || $val ne "group") && $mode ne "multihost") {
    print(" <td bgcolor='" . $colors{title_bg_color} . "'>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{title_fg_color} . "'>\n");
    print(" <font size='5'><b>&nbsp;&nbsp;Host:&nbsp;</b></font>\n");
    print(" </font>\n");
    print(" </td>\n");
    if($val =~ m/group(\d+)/) {
    my $gnum = $1;
    my $gname = (split(',', $config{multihost}->{remotegroup_list}))[$gnum];
    $gname = trim($gname);
    print(" <td bgcolor='" . $colors{title_bg_color} . "'>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{title_fg_color} . "'>\n");
    print(" <font size='5'><b>&nbsp;&nbsp;$gname&nbsp;</b></font>\n");
    print(" </font>\n");
    print(" </td>\n");
    print(" <td bgcolor='" . $colors{bg_color} . "'>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{fg_color} . "'>\n");
    if($mode eq "localhost" || $mode eq "traffacct") {
    $title = $config{hostname};
    } elsif($mode eq "multihost") {
    $graph = $graph eq "all" ? "_system1" : $graph;
    my ($g1, $g2) = ($graph =~ /(_\D+).*?(\d)$/);
    if($g1 eq "_port") {
    $title = $config{graphs}->{$g1};
    $g2 = trim((split(',', $config{port}->{list}))[$g2]);
    $title .= " " . $g2;
    $g2 = (split(',', $config{port}->{desc}->{$g2}))[0];
    $title .= " (" . trim($g2) . ")";
    } else {
    $g2 = "" if $g1 eq "_proc"; # '_procn' must be converted to '_proc'
    $title = $config{graphs}->{$g1 . $g2};
    $title =~ s/ /&nbsp;/g;
    print(" <font size='5'><b>&nbsp;&nbsp;$title&nbsp;&nbsp;</b></font>\n");
    print(" </font>\n");
    print(" </td>\n");
    print(" <td bgcolor='" . $colors{title_bg_color} . "'>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{title_fg_color} . "'>\n");
    print(" <font size='5'><b>&nbsp;&nbsp;last&nbsp;$tf{twhen}&nbsp;&nbsp;</b></font>\n");
    print(" </font>\n");
    print(" </td>\n");
    print(" </tr>\n");
    print(" </table>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{fg_color} . "'>\n");
    print(" <h4><font color='#888888'>" . strftime("%a %b %e %H:%M:%S %Z %Y", localtime) . "</font></h4>\n");
    $cgi{colors} = \%colors;
    $cgi{tf} = \%tf;
    $cgi{version12} = \@version12;
    $cgi{version12_small} = \@version12_small;
    $cgi{graph} = $graph;
    $cgi{when} = $when;
    $cgi{color} = $color;
    $cgi{val} = $val;
    $cgi{silent} = $silent;
    if($mode eq "localhost") {
    foreach (split(',', $config{graph_name})) {
    my $gn = trim($_);
    my $g = "";
    if($graph ne "all") {
    ($g) = ($graph =~ m/^_*($gn)\d*$/);
    next unless $g;
    if(lc($config{graph_enable}->{$gn}) eq "y") {
    my $cgi = $gn . "_cgi";
    eval "use $gn qw(" . $cgi . ")";
    if($@) {
    print(STDERR "WARNING: unable to load module '$gn. $@'\n");
    next;
    if($graph eq "all" || $gn eq $g) {
    no strict "refs";
    &$cgi($gn, \%config, \%cgi);
    } elsif($mode eq "multihost") {
    multihost(\%config, \%colors, \%cgi);
    } elsif($mode eq "traffacct") {
    eval "use $mode qw(traffacct_cgi)";
    if($@) {
    print(STDERR "WARNING: unable to load module '$mode'. $@\n");
    exit;
    traffacct_cgi($mode, \%config, \%cgi);
    if(!$silent) {
    print("\n");
    print(" </font>\n");
    print(" </center>\n");
    print("<!-- footer begins -->\n");
    print(" <p>\n");
    print(" <a href='http://www.monitorix.org'><img src='" . $config{url} . "/" . $config{logo_bottom} . "' border='0'></a>\n");
    print(" <br>\n");
    print(" <font face='Verdana, sans-serif' color='" . $colors{fg_color} . "' size='-2'>\n");
    print("Copyright &copy; 2005-2015 Jordi Sanfeliu\n");
    print(" </font>\n");
    print(" </body>\n");
    print("</html>\n");
    print("<!-- footer ends -->\n");
    0;
    Last edited by joaocandre (2015-03-15 20:45:19)

    karol wrote:Have you read https://wiki.archlinux.org/index.php/Mo … torix_Data ?
    I did, anything I'm missing? I'm sure base_dir is correctly set up in the config file. Other than that, the wiki article doesn't have any information if there's any additional steps to set it up on an Apache server.

Maybe you are looking for

  • Setting up 2 App-V Servers

    Hi there I'm currently planning our App-V 5 Environment in our company. My goal is to have 2 mangement / publishing servers with a Netscaler in front of it, loadbalancing the management and publishing website. The AppVManagement Database will be stor

  • LaserJet Pro 200 color MFP M276 nw

    I am able to print, copy, scan I CAN SEND A FAX      however     I CANNOT RECEIVE A FAX

  • Repository differences

    when i try to perform Remote Client Copy - it is getting cancelled as there are some Repository differences. In this corner - can i go with Client Export and Import. When Import starts - if Repository differences exist - how it reacts and how the cli

  • WinVista: QuickTime won't run, steps on Java JRE, destroys Java

    Noticed my Java desktop apps no longer load after installing QuickTime. Also cannot get the QT player to load. It loads, and then immediately exits. Any suggestions?

  • Itunes freezes at 50% when attempting to access the store on WIN7 Pro

    Using a Dell Latitude with Windows 7 Pro, fully updated, and working internet - selecting the "store" from the iTunes page results in the status bar freezing at 50% and I can not access the iTunes Store.  Anyone have suggestions for setting changes e