The afternoon was kicked off with a presentation on using APEX in large projects by Dimitri Gielis. These re my notes for what Dimitri told us.
Many people feels that APEX cannot be used for anything larger than a singe developers app.
Sumneva uses EC2 for both demo and development work with their clients.
They have readymade scripts to create new projects that sets up filesystem directories, APEX application, and subversion.
They're finding that the agile project methodology works very well for APEX-projects.
To automate testing, they're using Selenium. I find the number of times this product mentioned at OOW interesting. It is a product we have on the list of technologies to know/learn at work, but most people I've talked with have not been aware of it. I guess it differs between markets and it may also be a tool that more advanced web-developers are more familiar with.
To check consistency in a large projects with many developers, they recommend to use the APEX advisor to get a report on things to look into.
Sumneva has created their own PM tool to track tickets with. It is aware of APEX specific things such as the url to the app and the alias of the app.
Using the feedback features to collect data from the users works very well for them in their projects. They use the provided features when possible, and a custom version when they cannot access production environments that allos the users to log data into an application on their servers.
Tools they find useful includes:
- SQL Developer
- Jira or other ticketing system
- Reusable APEX components
- Publish defaults to apps via a master app
- Use interface defaults
While the presentation didn't really tell me what it takes on the technical side to run a large project, it was clear that it is very possible. But, as with all large projects it requires planning for both functional and technical aspects of the project.
The next presentation was moving from mod_plsql in Oracle E-Business suite to APEX. The reason it is needed is that mod_plsql is not supported in the latest version of ebiz.
Unfortunately the presentation focused so much on the solution they had and the specifics of what they needed that it was hard to extract any APEX specific knowledge from the presentation. Most of the presentation was centered on the fact that they wanted to have SSO between ebiz and the APEX application and how they needed links to go from ebiz to the apex application so it felt like one application for the end-users. They succeeded with that, but the presentation did not provide enough details for what they did or even what they main hurdles they encountered was.
Posted in APEX, OOW, Oracle
This will be a APEX only day. The day starts with two APEX 4.0 presentations.
First up was a presentations about dynamic actions in APEX held by Anthony Raynor.
Using it is done by defining four things:
- Affected elements
For example it coould be used on pageload to disable fields it a checkbox is nog checked and then it could be applied to any number on items.
The presentations wrapped up with showing some nice demos on how the dynamic actions can be used from display to setting items to values in sosme conditions. One neat way to use it was to use it to delete rows in a alist without having to do a pagerefresh for everey delete.
Anthony has a nice sample application that I think are available on OTN that shows how to use dynamic actions.
The next session was on tabular forms in apex.
Tabular forms are used to make updates to multiple rows shown in a list/grid. The presentations was a fairly basic review of what can be done with tabular forms.
Some new features were shown. One of the nicer is that errors on multiple rows are now highlighted and an error per row is dispslayed on top of the page.
Other improvements are that radio and checkboxes are better supported. FMAP arrays have been introduced to make it easay to map a columnname in a form with the name eof the array containing the values in that columnname. It is alsos possible to make a call in pl_sql to find the array holding the data for a columnname (such as EMPNO).
That was the end of the mornings presentations, more apex fun to look forward to after lunch.
Posted in APEX, OOW, Oracle
I like when a blog I follow links to a blogpost I have already seen and that I thought was a gem. I used to happen quite frequently when Cathy Sierras blog was active, but it still happens. The reason it is nice is that I like it is that if the first post was really good, you can almost guarantee that I will like the next writer I follow that discusses the same thing.
This week it was Seth Godin who wrote about deadlines and why they work even if you set them for yourself. They have to be set publicly, but they do work. I have recently had a couple of discussions at work around it and this blogpost summarizes it and adds a few more points. I enjoyed the fact that someone else has found the same effect on having to set deadlines for themselves.
The post that referred to it was Tom Kyte's where he talks about finishing up his new book by starting to give Seth's blog praise and talk about finding that he is not the only one deadlines work for. One post that both discusses Seth's blog and gives us the news that Toms new book will indeed find it's way to the bookshelves one day is a blog post to celebrate.
Deadlines do work and no you are not special, they work the same way for everyone. If you do not set one and tell someone else about it, you are likely to not be done until after the original deadline you set.
Go set yourself a deadline today for something you really want to achieve/complete.
Posted in Books, Oracle
In case you haven't noticed already, David Peake's blog just announced that APEX 4.0 moves one step closer to become available for download. It is now the release that powers apex.oracle.com.
This is good news as it shows that the release is getting close to be completed. Upgrading apex.oracle.com is usually one of the last public steps before a release becomes available to download.
Posted in APEX, Oracle
I've just uploaded my latest article. This time it is a look at the SQL keyword CASE. It's power is often not fully appreciated. It is much more flexible and powerful than you may expect from just taking a quick glance in the official documentation.
The article is located here.
Please post comments and questions here.
Posted in Oracle, SQL
Interested Transaction List is the method through which Oracle keeps track of which transaction has updated which row in a block. I wrote an article about it a while back where I show how the ITL works and how it impacts performance in certain situations. The basis of the article is a page locking scenario I encountered. Sure, page locking is not possible in Oracle, but an ITL wait is very similar to a page lock.
You find the article here.
Please post comments and questions here.
Posted in ITL, Oracle, Performance
I have just uploaded an article I wrote almost five years ago to the day. It was my first attempt and I wrote about Oracle AQ which is Oracle version of a messaging product.
AQ is included with the database and has a lot of nice features including full support for XML payloads. Another important benefit is that your messages are synchronized with your DML as both are committed in the same transaction.
You can find the article here. Please post comments and questions here.
I will post a couple more articles that I've written but somehow never got posted to this site. I will write a short blog entry about each of them to get a permanent place for comments about each article.
Posted in AQ, Oracle, XML
As Pawel showed in his post some details about how the row scn technology works in specific situations isn't as well documented as you'd wish.
I asked Oracle development to clarify the questions I had and the answer back was both interesting and useful. Every kind of update and lock on a row will make the rowscn for the row/block NULL until the updating/locking transaction completes. That is, any kind of lock and update can be identified when retrieving data.
More interesting is that this can be used to implement "skip locked" which is a feature oracle AQ uses, but it is not supported for use by end users. For a table where rowdependencies is defined, this can now be implemented with "where ora_rowscn is NOT NULL". I don't know exactly how and when I'll use it, but it is good to have this tool when the situation arises. I'm sure it'll come in handy soon enough as discussions about the skip locked feature seems to occur almost on a monthly basis.
I'm on a long vacation so I cannot test this until I come home again. I had some time over this mornings, so I figured it would be a good time to show that the blog isn't completely dead, it's just not too active when I have to choose between talking with friends and family I haven't seen in a couple of years and researching Oracle technologies.
Posted in Oracle, SQL
I'll give myself a quota for no more than one rant a month. However, one of my pet peeves is how Oracle licenses the database. I'l probably return to why I dislike the general model in a future rant, but this on e will be specific to partitioning.
To use partitioning, you have to pay for the Enterprise Edition of the database at $40,000 per CPU and then pay an additional $10,000 for the partitioning option. That is a lot of money if all I really need is SE One (at $5,000 per CPU) with Partitioning. Unfortunately, that is not an option.
I know partitioning used to be a fairly exotic feature. That was however over 10 years ago, when few datbases were really large and few SQL statements would benefit from parallel execution. As the average database has grown to be really large and most database servers now are multi CPU (and core) servers, this should now be treated as core database functionality.
In many cases it doesn't matter as large companies has site wide use of Oracle DB technology. It does, however, matter for smaller companies and startup companies. If you were to build a new solution today and market it initially to small companies or even run it as your own ASP, you would not be able to design with partitioning. Later on, your solution will be created and the cost of rearchitecting for partitioning is unacceptable.
Even worse is when you're taking an existing application and trying to move it downstream where SE One has to be used to meet the budgets those implementations have. Why spend a lot of time of a lot of good resources to implement "manual" partitioning?
I think Oracle would benefit from making partitioning included in all licenses. One thing it would do would tie customers closer to Oracle as the cost of converting partitioning from one DB to another is high due to the lack of standard even for the DDL used. I think it would also remove another reason for customers to consider other databases. I think licensing should be such that customers can scale with the database and get started on what they need. The situation today is such that building small and needing partitioning always requires a discussion of "can we replace Oracle in our technology stack".
By having partitioning as an included feature, companies could design for it when they begin designing new applications and get the use of it as they grow. That helps Oracle attract small companies that hopefully grow into large customers over time. It also helps in not getting people convinced that Oracle doesn't scale as using partitioning was too expensive when they started and now it's too costly (or politically impossible) to change it.
Designing manual partitioning schemes is really a waste of my and other Oracle professionals time. So… Please Oracle, it is time to revisit how licensing partitioning is done. It is a feature we need to put in the core toolbox and get people to make better use of the database with it. I hope 11G comes with a new licensing strategy for this. I believe Oracle would make a lot of money on making this an included feature in all editions of the database.
That's the partitioning rant. I know others have similar ideas on this as I've read some recent blogs on partitioning. I love Oracle's partitioning, but I hate having to use it only for the largest customers. I really dislike having to think of and implement manual partitioning, I know it will n ot scale as well as database driven partitioning and I still have to waste my time on it for financial reasons. Even worse is having to discuss if we should avoid Oracle altogether as we cannot use partitioning and then maybe a cheaper database will work just as well for us. I don't want to have to avoid the best database over financial details.
If one database is the best for the job, then I want a licensing model that allows me to start small and pay more as my need grows (meaning using SE One to start with and grow to EE while I design for and with partitioning the whole time).
Posted in DBA, Licensing, Oracle, Partitioning
Reading this post about why the average Oracle IT worker doesn't read blogs got me thinking. Does the average IT worker read blogs? I'm not sure. In what I have observed, it is something a segment does. I'd contend that the average blog reader is more advanced and more thirsty for more knowledge that the average person in the same field. I think it is also something the more internet aware do. Everyone knows about the internet, but how many non blog readers can explain the technologies involved? I have a feeling that most that can are on the blogosphere as readers today.
This is not to say that there aren't really good Oracle Specialists (or IT Specialists for that matter) that doesn't read blogs at all. Some has never looked at newsreaders and stay away because they don't want the hassle of learning one more product, other feel it is a waste of time as most blogs are useless to them, yet others feel that there are good blogs – but they are too hard to find.
I think most will improve and learn interesting things if they start reading blogs, I know I have learned many things I'd never have thought of or heard about if it weren't for blogs. Participating on and reading the best blogs is like an informal study group where you can opt in to learn about the subjects you are interested in.
I think it is that some like reading and learning small segments, while others are happy just doing what they know and hopefully hitting the Oracle docs from time to time when they get stuck. It may be similar to how it is natural for some to look up concepts and syntax in the documentation while others try to avoid the documentation like the plague. Maybe most blog readers are among those who like to read the documentation to learn more. There is a difference between looking things up because you have to and enjoying it because may always learn something new.
What do you think? Is this an awareness issue or is this just one of those things where some people will never learn to like the blog format for their reading and learning?
Posted in Blogging, Oracle