Blog Aggregator

Aggregation

Billy Cripe - 43 min 56 sec ago

techdirt - one of my usual blog reads - has an article HERE that got me thinking.  The article talks specifically about how news aggregators (think RSS news feed collectors like Google News or your personal collection) are the scourge of mainstream (old school) news media outlets. 

The crux of the article is this:

"

What aggregators do is make it a lot easier for readers to find new news sources. That's good for an up-and-coming site with a lot of great content, because aggregators enlarge the potential audience for the content. But it's not good for a mediocre site with a large readership based largely on inertia.

"

This is an interesting point when you remove the context of News Media.  Replace "readers" with "employees", "news" with "business information" and "site" with "intranet" (or other favorite internal enterprise information portal).  What you get is a good idea of why information aggregation matters in a business context.  Our new paragraph would read:

What aggregators do is make it a lot easier for employees to find new business information sources. That's good for an up-and-coming intranet with a lot of great content, because aggregators enlarge the potential audience for the content. But it's not good for a mediocre intranet with a large readership based largely on inertia.

The reality is that most internal corporate information portals (aka intranets) fall into the latter category.  They're mediocre with a large audience simply because the audience is captive.  However, business intranets are not *competitive* the way online news media is.  This means there is no reason to fear the aggregator within the enterprise.  What aggregation does is to expose lots of otherwise hidden but relevant information.  That means aggregation drives better business decisions, better business intelligence, better *business*.

Categories: Fusion Middleware

Bathroom 2.0 Update

Billy Cripe - 1 hour 1 min ago

Collaboration!  Content!  Art!

Click HERE for more.

Categories: Fusion Middleware

Using sdo web services with service based entities (ADF BC)

Edwin Biemond - 2 hours 19 min ago
If you ever need to make a web application build on services ( because of SOA or it has to be demilitarized zone application) then you can use the new service based entity and view of ADF BC. With this it is easy to make a service based application and there are no differences with normal ADF database development.
ADF BC can also create the sdo web service for you. You can use this service not only for ADF BC but also for the new soa suite 11g. It can be an alternative for the the database adapter See my previous blog for more details. In this blog entry I will show you how to create a adf bc sdo web service and use this service in an other application.
With 11g you can easily create a SDO web service. You only have to create a bc4j model project and add an entity with a viewobject. The viewobject which you want to service has to be added to the applicationmodule. The only thing you have to do now is open the applicationmodule and add a new service interface.

Add the viewobject and select the wanted operations on this viewobject

When it finishes you see JDeveloper generates a few xml schema's and java classes.
To test the new service run the ServiceImpl of the application module. This class is located in the serviceinterface package.
We have to make a ADF BC service deployment profile.


We can deploy the service to the local j2ee server. First start the oc4j container with JDEV_HOME/binoc4j.cmd -start. create a application server connection in your project and deploy this to this container. We have know two things, first we need our deployment profile name, this is CustomerService plus we add __MiddleTier. In my case the jndi lookup name will be CustomerService_MiddleTier. The second thing is the wdsl url this is http://localhost:8888/oe_sdo_service-model-context-root/CustomerModuleService?WDSL .
We are almost ready with sdo web service we only have to copy the reference from the connection.xml


Create a new fusion application where we add the just copied reference entry to this application connection.xml plus we add a few extra jndi entries

<?xml version = '1.0' encoding = 'UTF-8'?>
<ns2:References xmlns:ns2="http://xmlns.oracle.com/adf/jndi">
<Reference className="oracle.jbo.client.svc.Service" name="{/nl/ordina/sdo/service/common/}CustomerModuleService">
<Factory className="oracle.jbo.client.svc.ServiceFactory"/>
<RefAddresses>
<StringRefAddr addrType="serviceInterfaceName">
<Contents>nl.ordina.sdo.service.common.serviceinterface.CustomerModuleService</Contents>
</StringRefAddr>
<StringRefAddr addrType="serviceEndpointProvider">
<Contents>ADFBC</Contents>
</StringRefAddr>
<StringRefAddr addrType="jndiName">
<Contents>nl.ordina.sdo.service.common.CustomerModuleServiceBean</Contents>
</StringRefAddr>
<StringRefAddr addrType="jndiFactoryInitial">
<Contents>oracle.j2ee.rmi.RMIInitialContextFactory</Contents>
</StringRefAddr>
<StringRefAddr addrType="jndiProviderURL">
<Contents>ormi://localhost:23791/CustomerService_MiddleTier</Contents>
</StringRefAddr>
<StringRefAddr addrType="jndiSecurityPrincipal">
<Contents>fmwadmin</Contents>
</StringRefAddr>
<StringRefAddr addrType="jndiSecurityCredentials">
<Contents>welcome</Contents>
</StringRefAddr>
<StringRefAddr addrType="serviceSchemaName">
<Contents>CustomerModuleService.xsd</Contents>
</StringRefAddr>
<StringRefAddr addrType="serviceSchemaLocation">
<Contents>nl/ordina/sdo/service/common/serviceinterface/</Contents>
</StringRefAddr>
</RefAddresses>
</Reference>
</ns2:References>

Add the CustomerService_Common.jar to the project library. This jar is located in the deploy folder.
Finally we can create a entity based on a service. Create a new entity and select the service option where we add the ws wdsl url

And we can create in the last step an application and a viewobject.
Now start the bc4j tester by running the applicationmodule and we see all the customers.

We can use this application module in our jsf application.

Registering archive logfiles on a standby

Jason Arneil - 3 hours 23 min ago
I’ve been having some issues with a physical standby running Oracle 10.2.0.3. This has caused us to have to manually register logfiles to bridge gaps in the archive sequence on the physical standby. One way of registering a logfile is via the following: SQL> alter database register logfile [...]

Using Coherence with JDeveloper on Machines with Multiple IP Addresses

Stellan Arpenstr\u00f6m - 3 hours 24 min ago
Deepak Vohra has published a very nice tutorial on OTN on using Coherence from JDeveloper. It gives you a step-by-step guide on how-to get started using Coherence from within JDeveloper.

One thing that you should keep in mind going through this tutorial is if you are running this tutorial on a machine with multiple network cards. For example, you have installed the Loopback Adapter on your PC. As long as you are running a single cache (as in the example) this doesn't give you any issues, but if you startup another cluster node outside of JDeveloper and you want to ensure that they belongs to the same cluster then you should specify the IP address that you want the cluster nodes to bind to, otherwise it could happen that they end up binding to different IP addresses on your machine, for example one binds to your NIC and another one binds to you Loopback Adapter, and in this case they won't belong to the same cluster. By default Coherence will attempt to obtain the IP to bind to using the java.net.InetAddress.getLocalHost() call, so it shouldn't happen, but I've seen this happening, so it can happen.

You can solve this issue by specifying the IP address to bind to by using the Java parameter tangosol.coherence.localhost, like -Dtangosol.coherence.localhost=192.168.96.1 on the command line when starting the external cache. In JDeveloper this would be done in the 'Run Configuration' configuration as described in the tutorial.

Webcenter Development - SRDemo

iAdvise - 3 hours 54 min ago
When you want to start learning Webcenter, getting a grasp of the technology, the features ... have a more practical view, you can download the SRDemo application to get you started.

When you're going through the installation-guide to set everything up, following tips can help you step-through this installation:
- modify the oc4j.cmd before installing the standalone OC4J in the SRDemo directory and make sure to define the JAVA_HOME, ORACLE_HOME and J2EE-home.
- modifications you need to perform in the adf-config.xml are setting the mds-file location correctly, which is available under your application-folder in OC4J
Categories: APPS Blogs

Blogbuster Treasures Hunt: Blog entries from the lost Orablogs blog for download

Frank Nimphius - 4 hours 9 min ago

Nikolay Smirnov is not only a frequent reader of my blogging, but also turned out to be a collector of its content. As if he knew what would happen to orablogs, he kept on copy and pasting the blog content to a Word document since 2006. The document became big and has the quality of a book with a table of content for quick access.

Nikolay sent me the document to help me recovering my lost orablog content. However, I think the format he put it in is so great, I like to leave it in this format. Since the Word document doesn’t contain the sample workspaces, which I do have a back up of, I suggest that I upload them to the new blog by request. To voice an interest in a specific workspace, just post a question for it on the JDeveloper forum on OTN.

Download the Orablog posting collected by Nikolay Smirnov from here.

Frank

Oracle BI EE 10.1.3.3.3/2 - Proxy User Functionality

Venkat Akrishnan - 5 hours 58 min ago

One of the very good features of BI EE is its ability to enable proxy functionality for all/some users. For example, as an Administrator user, one can proxy as another user and can find out what kind of dashboard other users have. One other good example is (given in the documentation) a manager user allowing one of his direct reportees to create reports for him. Though the setup for this functionality is straight forward, i thought i would blog about it since the functionality is commonly desired.(I believe Borkur had blogged about it before. Not sure where it is now. If anyone has the link, just leave a comment with the link and i would update the link here.) We shall be using 2 terms here. They are ProxyUser and TargetUser. You can understand what these 2 users mean from the below diagram

    

Basically ProxyUser is the user who would be proxying as other users. I.e User A can proxy as user B, C and D(targetUsers)

Enabling this functionality is a four step process.

1. Let BI Server and Presentation Server know about the list of target users.
2. Let BI Server and Presentation Server know about the list of proxy users.
3. Let BI Server and Presentation Server know about the relation between the target and proxy users (who will proxy in as whom)
4. Create an InitBlock and a system session variable called PROXY to allow the proxy user to authorize.

The first 3 steps are achieved by adding a set of tags to the instanceconfig.xml. Lets take a simple example. There are 2 users Administrator and paint. Our aim is to set up a proxy funtionality for the Administrator user so that he can proxy in as the paint user. In order to do that lets start with creating a simple table with the below structure.

CREATE TABLE PROXYTABLE
(
PROXYUSER VARCHAR2(100),
TARGETUSER VARCHAR2(100),
PROXYLEVEL VARCHAR2(20)
)

PROXYUSER - Stores the list of PROXYUSERS needed within BI EE. In our case, this column should have the Administrator user as one of the values.
TARGETUSER - Stores the list of TARGETUSERS needed within BI EE. In our case, this column should have the paint user as one of the values.
PROXYLEVEL - This can take 2 values — full or restricted. If full access is provided, then the proxyuser would have edit/read privileges of the target user (provided the proxyuser himself has those privileges). If restricted access is provided, then the proxyuser would only have read privileges (provided the proxy user himself has those privileges).

Now, lets insert the users as desired for our example into the table


INSERT INTO PROXYTABLE values('Administrator','paint','restricted');

Once this is done, create a seperate connection pool connecting to the database containing the above table.

    

Now, lets start with the first 3 steps mentioned above i.e to let the BI Server and Presentation Server know about the list of target, proxy users and their corresponding relationships. In order to do this, we need to first add a set of tags to the instanceconfig.xml that would let the presentation server know about an XML template(which would contain the queries to get the list of target, proxy users). So, add the tags given below to your instanceconfig.xml (between the ServerInstance tags)


 <LogonParam>
  <TemplateMessageName>LogonParamSQLTemplate</TemplateMessageName>
  <MaxValues>100</MaxValues>
 </LogonParam>

    

In the above XML, TemplateMessageName tag value(LogonParamSQLTemplate) would be the Template name which we would be creating.

Go to {OracleBIDate}\web\msgdb\customMessages (if you do not have this folder, create one) and create the below XML file in this folder (you can give any name to the XML file)


<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web.messageSystem">
 <WebMessageTable system="SecurityTemplates" table="Messages">
 <WebMessage name="LogonParamSQLTemplate">
 <XML>
  <logonParam name="RUNAS">
  <getValues>EXECUTE PHYSICAL CONNECTION POOL Proxy.Proxy
  select TARGETUSER from PROXYTABLE where PROXYUSER='@{USERID}'</getValues>
  <verifyValue> EXECUTE PHYSICAL CONNECTION POOL Proxy.Proxy
  select TARGETUSER from PROXYTABLE where PROXYUSER='@{USERID}' and TARGETUSER='@{VALUE}'</verifyValue>
  <getDelegateUsers>EXECUTE PHYSICAL CONNECTION POOL Proxy.Proxy
  select PROXYUSER, PROXYLEVEL from PROXYTABLE where TARGETUSER='@{USERID}'
  </getDelegateUsers>
  </logonParam>
  </XML>
  </WebMessage>
  </WebMessageTable>
</WebMessageTables>

Once this is done, restart the presentation server. Now, the next step is to initialize a system session variable PROXY from an init block. This will help in authenticating the proxy user as the target user.

    

    

In the InitBlock use this SQL.


SELECT TARGETUSER FROM PROXYTABLE WHERE  'VALUEOF(NQ_SESSION.RUNAS)' = TARGETUSER AND ':USER' = PROXYUSER

Do not worry about RUNAS session variable. This RUNAS session variable would be populated when you click on the target user. And based on what you have clicked, the PROXY user value would be populated. Now, if you log on as Administrator and click on Settings -> Act as, you would get the paint user.

    

    

Now, the Administrator user should be able to proxy as the Paint user

    

If needed, you can populate another session variable PROXYLEVEL to vary the access levels of the proxying user. But this should get you started.

Categories: BI & Warehousing

Bug in 11g AWR report

Dominic Brooks - 6 hours 24 min ago

Post 11g upgrade, one of the first things I noticed was in the AWR reports.

In the Instance Efficiency Percentages, the “Parse CPU to Parse Elapsd %” was a less than impressive “0.00″. I’ve become accustomed to this being low in reports here, but not that low ;-) .

This has been confirmed as a new bug but the support analyst was not hopeful of it being fixed at any point soon (periods of not months but years and 12g was mooted).

It’s not a big deal. The forumula for this ratio is an unsurprising 100*(parse time cpu / parse time elapsed), figures which can be found elsewhere in AWR (and statspack of course) in the Instance Activity Stats.

So, the figure that should have reported was 85% - still less than impressive.

I’m slightly surprised that something so obvious slipped through the net but then again maybe not if it’s unlikely that more than 1% of Oracle sites are running 11g.

The Oracle APEX Award

Joel Kallman - 6 hours 28 min ago
Just announced today is a competition in Germany called The Oracle APEX Award, with a grand prize of € 5,000 (approximately $7700 USD). Now it can't be just any application - it should be business related, based on APEX 3.0 or later, delivered with supporting objects and an installation script (so it is a single file deliverable, just like the Packaged Applications), and run on Oracle Database 10g or Oracle Database 11g.

Beyond the money, though, all Oracle Application Express solutions from the competition will be promoted by Heise, Mittelstandswiki and on the German Oracle General Business Sites.

In case you were worried that this competition would be won by Patrick Wolf, he can't participate, as he is one of the judges.

Why APEX?

Joel Kallman - 6 hours 36 min ago
Why use Application Express? What is it good for? Good questions.

Today I stumbled upon a 3 minute viewlet about Oracle Application Express. And I honestly couldn't tell you who did this, although I do remember David Peake (the Application Express Product Manager) making mention of this a month or two ago.

If you're curious about Oracle Application Express, this is worth 3 minutes of your life.

Measuring Disk I/O—Oracle’s ORION Tool

Cheap DBA - Thu, 2008-05-15 21:16

©Mr. Physics
Orion NebulaTo increase your ability to model the physical aspects of an Oracle database it is advantageous for the designer to test a disk configuration before they actually install an Oracle database on top of it. For this reason I suggest you take a look at Oracle’s ORION tool to help benchmark your storage architecture. The proper benchmarking can be the difference between the same hardware having poor or excellent performance. Through the use of Oracle’s ORION workload tool Database Architects can effectively develop a workload that can mimic and stress a storage array in the same manner as the planned application with an Oracle backend database. Because the ORION tool does not require a running Oracle database, multiple configurations can be tested such that an optimal storage configuration can be obtained while providing for reliability, stability, and scalability.

Take a look at this introductory article Measuring Disk I/O - Oracle’s ORION Tool

Take an Open Source Database Survey

Lewis Cunningham - Thu, 2008-05-15 19:21

LewisC's An Expert's Guide To Oracle Technology

Do you know which open source feature is the most important? Do you know which open source database rocks and which one sucks? Is MySQL better than Postgres? Is Ingres worth considering? How does Firebird compare? Have you used, or have you considered using, an open source database?

Take a survey

My Vision on SOA, part 2.

Darwin IT - Thu, 2008-05-15 19:02
I just realize that maybe I have to explain my earlier post on my vision on SOA. I stated that it is all about: "Don't postpone to tomorrow what you can do today".

A few years ago I had a discussion with a colleague that resulted in an article in our consulting-magazine. He asked me if I would use InterConnect for an interface that processes 1000000 records in batch every night, were the receiving application is not interested in the records real-time.
But then your only argument to use an EAI-tool like InterConnect, Tibco or ESB that the receiving application needs the application realtime.

But it results in a costly batch that has to be maintained. The batch has to fit in the batch-window. There is no reuse of the code (transformations and data-enrichments in the batch). And also the providing application is pressurized because of requirements of the remote application. When you're able to get the change-events in the source application in real-time then you have all the information at hand at the moment the event occurs. Then you can do the transformations and enrichments at that very moment. You could do that asynchronously when these actions would cause the End-user-session to be less responsive.
Doing so you can subscribe multiple applications/services to the events. Also after processing the event the publishing application got rid of the responsibility.

If your receiving application is not able to get the mutations real-time, you can collect the mutations in a staging table. And then you only need a very light batch that just processes each mutation from the staging table in the receiving application. Since all the transformations and enrichments are done at real-time the mutations are in a processable state for the batch.

When you are to soa-enable an enterprise that uses packaged apps like Oracle E-business suite or conventional (Designer/Developer) custom-apps than you may have to break up the conventional way of working with batches. Possibly you can copy and paste transformation and data-enrichment code from the batches. But big chance that you have to rebuild it with technologies as XSLT.

When you have to build or maintain a custom-app or you work as a developer at a packaged-app-provider then also keep this in mind. Try to work event-driven. See that on every mutation event you're able to put a message on a queue (for example AQ) or publish an event to an ESB-product (Oracle SoaSuite).

Oracle Workflow had the Business Event System, which is a really nice system for publishing and subscribing to events. It is AQ based and available with every main product of Oracle (database, AS). It mainly executes in the database so for custom Forms applications, especially when they're based on Designer/Headstart/CDM Ruleframe, the ideal way to expose change-events asynchronously.
Very unfortunately Oracle decided to de-support Workflow (and thus BES). It is supported as long as the product that it's shipped with is supported. So as long as Oracle DB 10g or Oracle AS 10g is supported you can use Workflow/BES.

Actually it is quite remarkable that they de-support it. Because BES used to be written in Pl/Sql but in the very latest release (2.6.3 or 2.6.4 that shipped with 10gR2) they re-build it into a J2EE container! I wonder why they did that, because soon after that the Statement of Directoy noticed the de-support. I have two possible explanations:
  1. E-Business Suite still ships with embedded workflow. Release 12 is OC4J based (R11 is still based on the formally for customers desupported old Oracle 9i Application Server version 1.0.2.2). In R12 the Oracle embedded Workflow will still be available and so the BES can be J2EE based. Also it makes it simpler to have Java-calls on events. In 2.6.2 it used some kind of D-tour-solution from Pl/Sql to java.
  2. Did you ever took a glance at the datamodel of Oracle SoaSuite ESB 10.1.3? You will see some tables of ... indeed: Oracle Workflow/BES!

Work Could be More Funner

Oracle AppsLab - Thu, 2008-05-15 18:09

Pacman ftw!At Web 2.0 Expo about a month ago, Rich, Paul and I all attended a fascinating session called “Children of Flickr: Making the Massively Multiplayer Social Web“. Aside from being interesting, it reenergized me on my quest to make work more fun.

Then, daily operational stuff intervened. I managed to rush some thoughts onto virtual paper, but I haven’t had the luxury to think deeply on the topic.

A few recent nuggets have reminded me. First, PMOG launched. I love the idea; install the toolbar and do your normal surfing. The game happens around your normal activity and is perfect for people like me who spend a lot of time driving on the “information superhighway”. I am skeptical about what they plan to do with all the browsing data, but after combing the privacy and terms, it seems pretty benign, at least for now.

Second, our friends at TalentedApps posted a missive about gaming and engagement. Engagement is a hot topic in this era of job-hopping; employees realize work is a commodity that can be sold to the highest bidder. For employers, finding ways to retain employees, especially in the face of economic uncertainty, is increasingly key.

And third, I discovered the person with the absolute coolest avatar (collection) on Connect just so happens to be into game mechanic and design. Sweet, it’s always good to wrap another head around a complex problem. We’ve kicked this around the ‘Lab for a year, so a new viewpoint is welcome.

One of our initial goals with Connect was to bring a trusted social network and ultimately social platform inside the firewall where we could experiment (this is supposed to be a lab, remember) with new stuff, like adding game mechanics or otherwise fun stuff like predictive markets. We all like the application of gaming to work as an area for experimentation because it’s a challenge with a potentially great reward.

I’m not talking about games. I’m talking about making work tasks more fun, not an easy row to hoe. Mention gaming and you’ll get blank stares. Most people want work to be work and fun to be fun. And no overlap thanks very much.

But people love games, all kinds of games (board, video, outdoor, indoor, etc.), so I say why not mix the two and see if something good happens, spice up the workday a bit.

We have to be careful to avoid making something too addictive that might negatively impact productivity, but we need something fun and engaging that isn’t just glitter.

Any thoughts? Sound off in comments.

Yes! OpenSuse 10.3 on my laptop

Darwin IT - Thu, 2008-05-15 18:02
Yes! Finally I succeeded in getting OpenSuse 10.3 86_64 on my laptop. I think it sounds silly since it's one of those Linux distro's that should install simply and just work. And actually it did but there were some issues that kept me struggling for two weeks and several re-installs (I think I re-installed linux about 5 times the last two weeks). Apparently my Dell Latitude D830 is a very special one ;-).

Since I have this laptop I worked with Ubuntu 7.10 Gutsy Gibbon. And really enjoyed it. However there were also some things that I found not so obvious as expected in Ubuntu:
  1. My soundcard did not work natively. I had to re-install the alsa-drivers and change the mixer settings to get the Front-part of the volume controls under the volume buttons on my laptop.
  2. My Nvidia-card is a Quadro NVS 135M. And apparently due some license-issues the native-propietry driver is not shipped with the distribution. (This also counts for OpenSuse 10.3). So I had to install the propietry driver. Luckily this is very simple in Ubuntu. Just enable it in the propietry driver screen. But changing resulution settings is not so simple. Actually it seems simple with the Screen Resolution in the administration menu. But when I wanted to have another external screen attached to my laptop it is a crime to get the correctl resolution and also get it back to the native resolution of my laptop.
  3. I work extensively with VMWare Server. Ubuntu works with a Debian-based packagemanger for which often no package exist for many commercial software like VMWare. Nowadays it is in the repository but that was the 1.04 version, while the current version 1.0.5 is not yet (that is: two weeks ago it was not). Having it installed it works fine, except for suspend and resume. It is terribly, unworkable, slow. So under Ubuntu: just startup and shutdown your guest, then it works fine.
  4. Ubuntu uses Gnome. And that is a fine windows-manager. But I got a glance at KDE and that has many more shortcuts, richer pop-up menus (right-click), and just looks and feels "opener". Also I missed the "windows active desktop" in Gnome that seems to exist in KDE (I've seem something that suggest those capabilities but did not have it working).
  5. I had the 32 bit version of Gnome. I tried the 64 bit versions of both Ubuntu 7.10 (Gnome) and Kubuntu 8.04 (KDE). But the 7.10 version I could not get started normally (you had to remove the splash screen in the startup otherwise you did not get a "visual"). The Kubuntu 8.0.4 had some other issues. Mainly I could not get the Nvidia propietry driver and VMware Server working properly. I wanted to have the 64 bit because I have a 4 GB laptop and a 32-bit OS just addresses 3.5 GB of it, because of some address-lines that have to be reserved for peripherals.
An (ex-)colleague of mine uses OpenSuse 10.3 86_64 for a while on his D630 laptop with great sattisfaction. He uses OpenSuse for ages, so I figured: then it should be easy to get it working on my laptop. And actually it comes with a nice graphical installer (like Ubuntu 7.10, but unlike Kubuntu 8.04 amd64 which has a character-based one) and all my laptop-hardware is recognised. So Happy? Well then begins the configuration-issues.

Nvidia driver
Like Ubuntu also OpenSuse lacks the propietry driver for Nvidia due to License Issues. To me it seems that they could have put the Nvidia-software repository to the repository list and give the choice to install it for you. Then they could have presented the EULA and let you agree to it. The opensource driver nv works but is very slow. Scrolling with it in a large document or Web-page is not convenient. Luckily on the net are a few sources that explain how to replace the driver.
There is a nice one-click install on http://en.opensuse.org/NVIDIA. Unfortunately I found this one just the second try. The first try I had another source (which I can't remember and see no need to give here). It looked well (just a little less easy: near-one-click install). But something went terribly wrong during a reboot that I did a short while after that. My complete file system messed up unrepairably.

VMWare Server 1.0.5
Works very good. It is fast, also in suspend and resume. Just like I was used to under Windows.
I would like to get my windows-partition booted under VMWare Server. That should be possible, but when I tried I hit some access-right restrictions on the partition.

Wireless
The wireless drivers that get installed were the ipw3945 drivers. (I have an Intel Pro/Wireless 3945 ABG card). These drivers don't work that good. I just get a connection once in a while and it is then very unstable. There are also iwl drivers (iwlwifi, iwl3945-ucode). Just search on 'iwl' in YaST2. What I had to do was to uncheck/uninstall the ipw3945 modules and make sure that iwlwifi and iwl3945-ucode are installed. Now my wireless work just fine with the iwl-driver. I did not have to couple my wireless to the drivers. It just worked.

NTFS partitions
I have a dual boot machine. There are some things that just only work with windows (my Nokia N73, my Nikon D40+, and Netsupport a remote-desktop tool that they use at Oracle University). Ubuntu natively give read-write-support on ntfs-partions and usb-disks.
But OpenSuse does not. I had to made sure that the ntfs-3g drivers and mount tools were installed. Then I had to change the mount rule in /etc/fstab:
/dev/disk/by-id/scsi-SATA_ST9160823AS_5NK0BXV1-part1 /windows/C ntfs-3g user,users,gid=users 0 0
Also check that /windows/c has the users group and read/write on group level:
chown root:users /windows/C
chmod g+w /windows/C

Suspend to disk
Well this is the only main-thing I have left. It just does not work. I got this error in /var/log/pm-suspend.log:
ERROR: resume partition '/dev/sda5' not active, can not suspend
WARNING: /var/run/pm-utils.inhibit will be created to prevent suspending!
I searched and searched on Google but could not find a proper solution. It seems that I'm the only one in the Linux world that has this...

Conclusion
Well in the end I'm very happy with my OpenSuse install. Although I still would also recommend Ubuntu to others. Both are really fine systems. I think Ubuntu is especially strong for less experienced Linux users, people that just want to have a very stable system or have less up-to-date hardware. It's very easy to install and have in use.
OpenSuse also works very good with some refinements like explained above. KDE is really a pleasure to me.
If you have a good solution for my Suspend problem or know how to have a windows-partion booted under VMWare Server then please give me a comment. Thanks in advance.

Export data to a previous time or point-in-time

Arju - Thu, 2008-05-15 17:44
From oracle 9i and 10g along with export/import utility the two parameters named FLASHBACK_SCN and FLASHBACK_TIME really help us in order to take dump up to a previous point. This allows use for example, to export the original data of a table, in which rows have been updated erroneously, or rows were deleted by mistake.

In order to illustrate the usage of these two parameters I used an example. In the example I used a table named TEST_NUM and owner of the table is ARJU whose password is A.

1)Determine the current SCN of the database.

SQL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
GET_SYSTEM_CHANGE_NUMBER
------------------------
1252872

2)Note the contents of table test_num.
SQL> SELECT * FROM TEST_NUM;
A
----------
100
100
5
7

3)Update the table test_num.
SQL> UPDATE TEST_NUM SET A=A+1;
4 rows updated.

SQL> COMMIT;
Commit complete.

SQL> SELECT * FROM TEST_NUM;
A
----------
101
101
6
8
4)Export the table test_num with parameter FLASHBACK_SCN to 1252872.
So export operation will be done up to SCN 1252872. Changes after SCN 1252872 will not reflected with dump file.

SQL> HOST expdp ARJU/A TABLES=TEST_NUM FLASHBACK_SCN=1252872
Export: Release 10.2.0.1.0 - Production on Friday, 16 May, 2008 2:50:09
Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "ARJU"."SYS_EXPORT_TABLE_01": ARJU/******** TABLES=TEST_NUM FLASHBACK_SCN=1252872
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "ARJU"."TEST_NUM" 4.937 KB 4 rows
Master table "ARJU"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for ARJU.SYS_EXPORT_TABLE_01 is:
/oracle/app/oracle/product/10.2.0/db_1/admin/dbase/dpdump/expdat.dmp
Job "ARJU"."SYS_EXPORT_TABLE_01" successfully completed at 02:50:17


Alternatively you can used FLASHBACK_TIME parameter like on unix,
flashback_time=\"TO_TIMESTAMP\(\'16-05-2008 11:21:42\', \'DD-MM-YYYY HH24:MI:SS\'\)\"

On windows,
flashback_time=\"TO_TIMESTAMP('16-05-2008 13:24:26', 'DD-MM-YYYY HH24:MI:SS')\"

Use backslash(\) before special character.

5)Drop the table and Import the dump file.

Here I provide no location so default location is used. While dump as I did not provide any DIRECTORY or DUMPFILE parameter and hence it looked for default directory DATA_PUMP_DIR and by default location of this parameter is $ORACLE_HOME/admin/$ORACLE_SID/dpdump/ (/oracle/app/oracle/product/10.2.0/db_1/admin/dbase/dpdump/) and searched for default dump file which is expdat.dmp.

SQL> DROP TABLE TEST_NUM;
Table dropped.

SQL> HOST impdp ARJU/A
Import: Release 10.2.0.1.0 - Production on Friday, 16 May, 2008 2:51:15

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Master table "ARJU"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "ARJU"."SYS_IMPORT_FULL_01": ARJU/********
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "ARJU"."TEST_NUM" 4.937 KB 4 rows
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "ARJU"."SYS_IMPORT_FULL_01" successfully completed at 02:51:20

6)Now look at the data in TEST_NUM.

SQL> SELECT * FROM TEST_NUM;
A
----------
100
100
5
7
Categories: DBA Blogs

Windows Services, APEX Performance, SQL*Net break/reset

Oracle Infogram - Thu, 2008-05-15 17:37
Services

Coskan's Approach to Oracle blog shares some good experience with Windows services and Oracle in this post.


Hotsos APEX

Scott Spendolini's Blog tells us that one of the folks at Hotsos, a leader in Oracle performance expertise, will be presenting on APEX performance tuning on May 28th. This is a webinar you won't want to miss if you are using APEX (and you should be. It's neater than sliced bread).

SQL*Net break/reset

Tanel Poder goes into how to deal with a very specific Oracle networking performance error: SQL*Net break/reset





A Quick Update

Eddie Awad - Thu, 2008-05-15 17:13

I owe you, my dear reader, a quick update. If you have been following me on Twitter, you already know that on April 23 I started a new job with a new employer. In the last three weeks, I have been adapting myself to the new environment. This is not easy to do after being in the same job and the same employer for 9 years.

My new position is still “Oracle Developer” and I’m still based in Portland, Oregon USA. I will be doing SQL and PL/SQL development, Fusion Middleware development like Portal, OID, Business Intelligence and SOA/BPEL, in addition to E-Business Suite. I will be exposed to a broader and different set of Oracle technologies compared to my previous job. As always, I will share my new experiences with you through my blog.

One thing I will not continue doing is ColdFusion. Even though I have not blogged about it for a while, now I know for sure that I will not be using nor blogging about ColdFusion at all. As a result, I have changed the title of this blog to: News, views, tips and tricks on Oracle and other fun stuff. No more ColdFusion.

Because of this transition, my blogging activities have dropped recently. There is a lot of useful stuff I want to blog about. I promise I’ll find the time to write and hit the publish button. However, somehow I always find the time to Twitter. Hey, how much time does it take to write a 140 character blog post?! You can always follow me there.

Thank you for being a loyal reader.

---
Related Articles at Eddie Awad's Blog:


ORA-08189: cannot flashback row movement is not enabled

Arju - Thu, 2008-05-15 16:54
Error Description:
-----------------------
Whenever I tried to Flashback Table feature of oracle the following error occurs.
SQL> FLASHBACK TABLE TEST_NUM TO TIMESTAMP SYSDATE-1;
FLASHBACK TABLE TEST_NUM TO TIMESTAMP SYSDATE-1
*
ERROR at line 1:
ORA-08189: cannot flashback the table because row movement is not enabled

Cause of The Problem:
---------------------------
Whenever you performed flashback operation(flashback table, flashback version query,flashback transaction query) of a table except flashback drop feature(which don't need to enable row movement as whole objects come from recycle bin) then above error will come.

Solution of The Problem:
------------------------------------
Row movement of the table need to be enabled in order to perform flashback table.

1)To see whether row movement enabled or disabled issue the following,

SQL> SELECT TABLE_NAME,ROW_MOVEMENT FROM USER_TABLES WHERE TABLE_NAME='TEST_NUM';
TABLE_NAME ROW_MOVE
------------------------------ --------
TEST_NUM DISABLED

2)In order to perform flashback table enable row movement by following query,

SQL> ALTER TABLE TEST_NUM ENABLE ROW MOVEMENT;
Table altered.

Check it by,
SQL> SELECT TABLE_NAME,ROW_MOVEMENT FROM USER_TABLES WHERE TABLE_NAME='TEST_NUM';
TABLE_NAME ROW_MOVE
------------------------------ --------
TEST_NUM ENABLED

3)Now perform flashback operation.
SQL> FLASHBACK TABLE TEST_NUM TO TIMESTAMP SYSDATE-1;
Flashback complete.
Categories: DBA Blogs