The Sorry State of Sound In Linux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
READ: http://insanecoding.blogspot.com/2007/0 … linux.html
I've only discovered this because of an ALSA bug was making my life miserable.  That article was written about a month or two before OSS4 (Open Sound System v4) was released under GPL and CDDL. This past January, it was released under BSD as well. Unfortunately for the developer, he does not understand open source very well. He is now reporting that his revenue went significantly down..
OSS4 does not equal to the crap OSS in Linux 2.4 kernels. Even OSS3 != OSS3 in former linux kernels. He was neglecting the open source version in favour of the commercial one. Instead of improving it, someone forked it. And, the fork became popular. Unfortunately, the original author had no interest in working on the fork. So, he only focused on the commercial version.  Now, many years later, the commercial version is fully open source. There is no more commercial version.
I've tried it,  and I really like it. Music sounds much better than on ALSA. For example, screaming in alternative rock is more legible.  It's like enabling "enhance voice" in a phone. It supports higher PCM values without noise.
The mixer (vmix) is capable of 18 channels. It can also do per application volume control (like PulseAudio).
It totally makes sense that OSS gets back into the kernel because it works on almost every UNIX and UNIX-like system (except OS X). ALSA only works on Linux, and according to that article, developers still prefer the OSS API, even on ALSA. However, the ALSA OSS API is lacking according to an ALSA developer. I can confirm that the comment on the ALSA OSS Emulation API working better than the ALSA API. XMMS with ALSA enabled freezes my system. XMMS with OSS enabled on ALSA does not.
It worked without any configuration besides muting some channels to kill the noise.
THE BAD
ossmix and ossxmix are totally unusable because they do not name the channels properly. ossxmix uses 100% CPU if Compiz is enabled. Version 4.1 will fix this.
I had to figure out WTF ossxmix.codec1.connector.jack14.jack 54:54 means. Sane names need to be added to the jacks such as "mater, front, input, auxiliary, microphone, etc.."
It's best to use ossxmix (GTK+ mixer) and playing with all the jacks to figure out what each one does.
One interesting control is how OSS4 should behave (Fast, Medium High, Professional, etc.). It's probably a latency control.  ossxmix is a demo app on how you can control the mixer from GTK. It needs to be made usable.
If you use Media Player Daemon, VLC, and MPlayer, OSS4 works beautifully. They use OSS directly. Others have problems.
Totem does not play sound. Totem-Xine uses 100% CPU (Xine-UI works with low CPU usage).
In terminal I noticed some output from oss mixer control saying it received bad arguments. OSS4 is backwards compatible with OSS3, but xine-lib may be using the API badly.
The progress bar (seeker) in GStreamer based applications (Rhythmbox, Banshee) does not work if you use vmix, or it may work, but it will be unsure of the length of a song. You will see it constantly adjusting a few seconds up or down. By the middle of the song, the length reporting generally stabilises. You have to enable softoss (the old mixer). vmix and Gstreamer behave very badly. The Gstreamer developer responsible for OSS claims that it does on his system. Though, he is most likely using the trunk version.
You have to apply this patched gstreamer to make volume control in GNOME work.
While the progress bar problem is fixed with softoss, volume control does not work, even with the patched GStreamer. It only works with vmix.  System > Preferences > Sound lists nothing under "Default Mixer Tracks".
Sound does not work in KDE4 at all. While Phonon is based on Xine, which has OSS support, it queries HAL, which does not support OSS4 yet. Therefore, it thinks that there is no sound card.
As for KDE 3.5.9. Amarok works, Noatun works, and anything based on MPlayer should work. KMIX does not work. Same in KDE4.
DOWNLOAD IT (Popular Distributions Linux and Unix Distributions)
Gentoo ebuild
Arch Linux
The Arch Linux wiki has a good article. Read it.
A Ubuntu user has published an install guide as well.
Check Configuring Applications for OSSv4 after you install it.
Overall, I think it's a million times better than ALSA. It's cross platform, and it's stable. It was released a year ago on 15th of March 2007. Since he does not have a marketing department, no one has heard of it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (GNU/Linux)
iEYEARECAAYFAkfuWboACgkQQxhfy6QbjiQbdwCgzHLsXO9hg7j4i9VJH0N9AWtW
UTEAoLkOsDfmKjYJ/u5Nv8i04PUBCN7M
=6qYu
-----END PGP SIGNATURE-----
Last edited by SpookyET (2008-03-29 15:01:19)

wyvern wrote:
Hmm, so it's a choice - have to enable effects and use an older mixer, or put up with a 'stuck' progress bar... Well, as I said, I use MOC, and I'm happy with my mixer setup so far, so I'll stick to what I've got.
I can't believe I finally have my headphones working, or external speakers, should I so wish - and what with the ATI divers *finally* providing tear-free video, it's like it's my birthday
Since you mentioned ATI and went offtopic, can you pastebin your ATI xorg? It works fine for me, but If I enable compiz, i get flickering video and slow scrolling. So, I'm stuck with the open source driver, which uses a lot more CPU when I play video.
I can also confirm what the article said about the ALSA OSS emulation. It does work better than ALSA with the ALSA API. xmms with ALSA enabled freezes my sytem. xmms with OSS enabled running ALSA does not. I'm tired of this bollocks. We have to mount a campaign to get OSS back into the kernel.
Anyway, this is my OSS output.
OSSINFO
Version info: OSS 4.0 (b1014/200803130443) (0x00040003) GPL
Platform: Linux/i686 2.6.24-ARCH #1 SMP PREEMPT Wed Mar 5 12:07:52 UTC 2008 (mercurius)
Number of audio devices: 10
Number of audio engines: 13
Number of mixer devices: 2
Device objects
0: osscore0 OSS core services
1: hdaudio0 Intel HD Audio interrupts=1389433 (1526696)
HD Audio controller Intel HD Audio
Vendor ID 0x80862668
Subvendor ID 0x10250070
Codec 0: ALC880 (0x10ec0880/0x08800000)
Codec 1: Unknown (0x11c13026)
2: softoss0 OSS Virtual Mixer v3.0
Mixer devices
0: High Definition Audio ALC880 (Mixer 0 of device object 1)
Device file /dev/oss/hdaudio0/mix0, Legacy device /dev/mixer0
Priority: 10
Caps:
Device handle: PCI00701025-0000:00:1b.0-mx01
Device priority: 10
1: Virtual Mixer (Mixer 0 of device object 2)
Device file /dev/oss/softoss0/mix0, Legacy device /dev/mixer1
Priority: 1
Caps: VIRTUAL
Device handle: softoss0-mx01
Device priority: 1
Audio devices
HD Audio front /dev/oss/hdaudio0/pcm0 (device index 0)
Legacy device /dev/dsp0
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 0/HD Audio front
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au01
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 8
Native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)
HW Type: Not indicated.
Minimum latency: Not indicated
HD Audio rear /dev/oss/hdaudio0/pcm1 (device index 1)
Legacy device /dev/dsp1
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 1/HD Audio rear
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au02
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 192000 (44100,48000,96000,192000)
HW Type: Not indicated.
Minimum latency: Not indicated
HD Audio center/LFE /dev/oss/hdaudio0/pcm2 (device index 2)
Legacy device /dev/dsp2
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 2/HD Audio center/LFE
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au03
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
HD Audio side /dev/oss/hdaudio0/pcm3 (device index 3)
Legacy device /dev/dsp3
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 3/HD Audio side
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au04
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
HD Audio spdif-out /dev/oss/hdaudio0/spdout0 (device index 4)
Legacy device /dev/dsp4
Caps: TRIGGER MMAP
Modes: OUTPUT
Out engine 1: 4/HD Audio spdif-out
Available for use
Input formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au05
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
High Definition Audio rec1 /dev/oss/hdaudio0/pcmin0 (device index 5)
Legacy device /dev/dsp5
Caps: TRIGGER MMAP
Modes: INPUT
In engine 1: 5/High Definition Audio rec1
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au06
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
High Definition Audio rec2 /dev/oss/hdaudio0/pcmin1 (device index 6)
Legacy device /dev/dsp6
Caps: TRIGGER MMAP
Modes: INPUT
In engine 1: 6/High Definition Audio rec2
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au07
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
High Definition Audio rec3 /dev/oss/hdaudio0/pcmin2 (device index 7)
Legacy device /dev/dsp7
Caps: TRIGGER MMAP
Modes: INPUT
In engine 1: 7/High Definition Audio rec3
Available for use
Input formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001010):
AFMT_S16_LE - 16 bit signed little endian
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au08
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
High Definition Audio spdif-in /dev/oss/hdaudio0/spdin0 (device index 8)
Legacy device /dev/dsp8
Caps: TRIGGER MMAP
Modes: INPUT
In engine 1: 8/High Definition Audio spdif-in
Available for use
Input formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Output formats (0x00001410):
AFMT_S16_LE - 16 bit signed little endian
AFMT_AC3 - AC3 (Dolby Digital) encoded audio
AFMT_S32_LE - 32 bit signed little endian
Device handle: PCI00701025-0000:00:1b.0-au09
Related mixer dev: 0
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 2 - 2
Native sample rates (min - max): 44100 - 96000 (44100,48000,96000)
HW Type: Not indicated.
Minimum latency: Not indicated
OSS Virtual Mixer v3.0 Playback /dev/oss/softoss0/pcm0 (device index 9)
Legacy device /dev/dsp9
Caps: TRIGGER MMAP VIRTUAL
Modes: OUTPUT
Out engine 1: 9/OSS Virtual Mixer v3.0 Playback
Available for use
Out engine 2: 10/OSS Virtual Mixer v3.0 Playback
Available for use
Out engine 3: 11/OSS Virtual Mixer v3.0 Playback
Available for use
Out engine 4: 12/OSS Virtual Mixer v3.0 Playback
Available for use
Input formats (0x00000010):
AFMT_S16_LE - 16 bit signed little endian
Output formats (0x00000010):
AFMT_S16_LE - 16 bit signed little endian
Device handle: softoss0-au01
Related mixer dev: 1
Sample rate source: 0
Preferred channel configuration: Not indicated
Supported number of channels (min - max): 1 - 2
Native sample rates (min - max): 48000 - 48000
HW Type: Not indicated.
Minimum latency: Not indicated
OSSMIX -d0
Selected mixer 0/High Definition Audio ALC880
Known controls are:
codec1.connector.jack14.mode <jack|input> (currently jack)
codec1.connector.jack14.mute ON|OFF (currently OFF)
codec1.connector.jack14.front-m ON|OFF (currently OFF)
codec1.connector.jack14.inputmi ON|OFF (currently ON)
codec1.connector.jack14.jack <both/leftvol>[:<rightvol>] (currently 57.9:57.9 dB)
codec1.connector.jack15.mode <jack|input> (currently jack)
codec1.connector.jack15.mute ON|OFF (currently OFF)
codec1.connector.jack15.rear-mu ON|OFF (currently OFF)
codec1.connector.jack15.inputmi ON|OFF (currently OFF)
codec1.connector.jack15.jack <both/leftvol>[:<rightvol>] (currently 57.9:57.9 dB)
codec1.connector.jack16.mode <jack|input> (currently jack)
codec1.connector.jack16.mute ON|OFF (currently OFF)
codec1.connector.jack16.center/ ON|OFF (currently OFF)
codec1.connector.jack16.inputmi ON|OFF (currently OFF)
codec1.connector.jack16.jack <both/leftvol>[:<rightvol>] (currently 57.9:57.9 dB)
codec1.connector.jack17.mode <jack|input> (currently jack)
codec1.connector.jack17.mute ON|OFF (currently OFF)
codec1.connector.jack17.side-mu ON|OFF (currently OFF)
codec1.connector.jack17.inputmi ON|OFF (currently OFF)
codec1.connector.jack17.jack <both/leftvol>[:<rightvol>] (currently 57.9:57.9 dB)
codec1.connector.jack18.mode <jack|input> (currently jack)
codec1.connector.jack18.mute ON|OFF (currently OFF)
codec1.connector.jack18.jack <jack|jack|jack|jack> (currently jack)
codec1.connector.jack19.mode <jack|input> (currently jack)
codec1.connector.jack19.mute ON|OFF (currently OFF)
codec1.connector.jack19.jack <jack|jack|jack|jack> (currently jack)
codec1.connector.jack1a.mode <jack|input> (currently jack)
codec1.connector.jack1a.mute ON|OFF (currently OFF)
codec1.connector.jack1a.jack <jack|jack|jack|jack> (currently jack)
codec1.connector.jack1b.mode <jack|input> (currently jack)
codec1.connector.jack1b.mute ON|OFF (currently OFF)
codec1.connector.jack1b.jack <jack|jack|jack|jack> (currently jack)
codec1.record.rec1 <both/leftvol>[:<rightvol>] (currently 31.9:31.9 dB)
codec1.record.rec1.rec1 <jack|jack|jack|jack|jack|jack|jack> (currently jack)
codec1.record.rec2 <both/leftvol>[:<rightvol>] (currently 31.9:31.9 dB)
codec1.record.rec2.rec2 <jack|jack|jack|jack|jack|jack|jack> (currently jack)
codec1.record.rec3 <both/leftvol>[:<rightvol>] (currently 31.9:31.9 dB)
codec1.record.rec3.rec3 <jack|jack|jack|jack|jack|inputmix|jack|jack|jack|jack> (currently jack)
codec1.misc.jack1 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack2 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack3 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack4 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack5 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack6 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack7 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.jack8 <both/leftvol>[:<rightvol>] (currently 58.9:58.9 dB)
codec1.misc.inputmix <jack|jack|jack|jack|jack|jack|jack|jack> (currently jack)
OSSMIX -d1
Selected mixer 1/Virtual Mixer
Known controls are:
synth <both/leftvol>[:<rightvol>] (currently 100:100)
pcm <both/leftvol>[:<rightvol>] (currently 100:100)
2 <leftVU>:<rightVU>] (currently 137:136)
autoreset ON|OFF (currently OFF)
effects.eq.prescale <monovol> (currently 255)
effects.eq.lo <monovol> (currently 128)
effects.eq.mid <monovol> (currently 128)
effects.eq.hi <monovol> (currently 128)
effects.eq.xhi <monovol> (currently 128)
effects.eq.bypass ON|OFF (currently OFF)
voices.pcm9 <both/leftvol>[:<rightvol>] (currently 100:100)
voices1 <leftVU>:<rightVU>] (currently 135:135)
voices.pcm10 <both/leftvol>[:<rightvol>] (currently 100:100)
voices2 <leftVU>:<rightVU>] (currently 118:119)
voices.pcm11 <both/leftvol>[:<rightvol>] (currently 100:100)
voices3 <leftVU>:<rightVU>] (currently 0:0)
voices.pcm12 <both/leftvol>[:<rightvol>] (currently 100:100)
voices4 <leftVU>:<rightVU>] (currently 0:0)
Last edited by SpookyET (2008-03-15 01:17:07)

Similar Messages

  • The sorry state of screensavers ?

    There are a few areas that are in a sorry state in linux and one of them seem to be screensavers. It's just one big mess.
    So, in my experience:
    gnome-screensaver doesn't work outside of gnome (the computer can be idle for an hour and it won't kick in)
    xscreensaver causes a MASSIVE 2-4 seconds X lag when starting up (I can't even move the mouse smoothly)
    I haven't tried KDE's screensaver as I don't have it or any part of KDE installed.
    And there doesn't seem to be a standard way for video players to temporarily deactivate a screensaver. (Although that isn't a problem with gnome-screensaver (see above) but it is with xscreensaver.) So whatever you choose you lose ?
    Now to make this post more than a rant, I did write a wrapper script for a video player that stops xscreensaver and restarts it when the video player is done but did I mention the MASSIVE lag when starting xscreensaver? Then I modified that script so it executes 'xscreensaver -deactivate' (that seems to send a signal of activiy) every 4 minutes and 50 seconds if the video player is still running, but then again, due to that sleep time it happens that I can't eject a disc I just watched a video from due to it still being in use by the script.
    So I guess I can ask two questions:
    Why does xscreensaver lag so much ? Or is it only on my system ?
    How could I make a more intelligent wrapper script then ?
    Here is the simple bash script:
    #!/bin/bash
    # What player to use:
    videoCmd="smplayer"
    "$videoCmd" "$@" &
    while true; do
    sleep 290
    if ps -au$UID | grep -v grep | grep $videoCmd > /dev/null; then
    /usr/bin/xscreensaver-command -deactivate
    else
    exit
    fi
    done
    EDIT: Also, I did try mplayer's hearbeat command and that lagged the video occasionally (Googling, I have seen other people stating this as well, so I guess it's a known issue with mplayer)
    Last edited by moljac024 (2009-10-29 19:12:45)

    moljac024 wrote:There are a few areas that are in a sorry state in linux and one of them seem to be screensavers. It's just one big mess.
    That depends on whether you're considering screen lockers as well as screen savers.  There are a few fool-proof screen lockers out there, one of which (my personal favourite) is slock from the suckless community.
    moljac024 wrote:
    And there doesn't seem to be a standard way for video players to temporarily deactivate a screensaver. (Although that isn't a problem with gnome-screensaver (see above) but it is with xscreensaver.) So whatever you choose you lose ?
    EDIT: Also, I did try mplayer's hearbeat command and that lagged the video occasionally (Googling, I have seen other people stating this as well, so I guess it's a known issue with mplayer)
    How about mplayer's -stop-xscreensaver option?  You can try adding this to ~/.mplayer/config:
    [default]
    stop-xscreensaver=1 # disable xscreensaver

  • After rebooting from Idle State, music sounds like vibrating not normal

    After shutting off my computer into the idle state and restarting it (so all the programs that have been open before are in the same state again), iTunes does not play music normal anymore.
    The music sounds as if it is cut into many pieces, a long tone would be cut into many very short tones and it sounds like vibrating.
    It does not help to exit iTunes (really exit it in the system tray), only reboot helps.
    Any suggestions?
    Thanks
    Svkoch
    Acer Travelmatr 290   Windows XP Pro  

    Kwondoo,
    I am sorry. If you need direct assistance from Creative, please go here. Customer support does not monitor these boards.

  • Issue while using SUBPARTITION clause in the MERGE statement in PLSQL Code

    Hello All,
    I am using the below code to update specific sub-partition data using oracle merge statements.
    I am getting the sub-partition name and passing this as a string to the sub-partition clause.
    The Merge statement is failing stating that the specified sub-partition does not exist. But the sub-partition do exists for the table.
    We are using Oracle 11gr2 database.
    Below is the code which I am using to populate the data.
    declare
    ln_min_batchkey PLS_INTEGER;
    ln_max_batchkey PLS_INTEGER;
    lv_partition_name VARCHAR2 (32767);
    lv_subpartition_name VARCHAR2 (32767);
    begin
    FOR m1 IN ( SELECT (year_val + 1) AS year_val, year_val AS orig_year_val
    FROM ( SELECT DISTINCT
    TO_CHAR (batch_create_dt, 'YYYY') year_val
    FROM stores_comm_mob_sub_temp
    ORDER BY 1)
    ORDER BY year_val)
    LOOP
    lv_partition_name :=
    scmsa_handset_mobility_data_build.fn_get_partition_name (
    p_table_name => 'STORES_COMM_MOB_SUB_INFO',
    p_search_string => m1.year_val);
    FOR m2
    IN (SELECT DISTINCT
    'M' || TO_CHAR (batch_create_dt, 'MM') AS month_val
    FROM stores_comm_mob_sub_temp
    WHERE TO_CHAR (batch_create_dt, 'YYYY') = m1.orig_year_val)
    LOOP
    lv_subpartition_name :=
    scmsa_handset_mobility_data_build.fn_get_subpartition_name (
    p_table_name => 'STORES_COMM_MOB_SUB_INFO',
    p_partition_name => lv_partition_name,
    p_search_string => m2.month_val);
                        DBMS_OUTPUT.PUT_LINE('The lv_subpartition_name => '||lv_subpartition_name||' and lv_partition_name=> '||lv_partition_name);
    IF lv_subpartition_name IS NULL
    THEN
                             DBMS_OUTPUT.PUT_LINE('INSIDE IF => '||m2.month_val);
    INSERT INTO STORES_COMM_MOB_SUB_INFO T1 (
    t1.ntlogin,
    t1.first_name,
    t1.last_name,
    t1.job_title,
    t1.store_id,
    t1.batch_create_dt)
    SELECT t2.ntlogin,
    t2.first_name,
    t2.last_name,
    t2.job_title,
    t2.store_id,
    t2.batch_create_dt
    FROM stores_comm_mob_sub_temp t2
    WHERE TO_CHAR (batch_create_dt, 'YYYY') = m1.orig_year_val
    AND 'M' || TO_CHAR (batch_create_dt, 'MM') =
    m2.month_val;
    ELSIF lv_subpartition_name IS NOT NULL
    THEN
                        DBMS_OUTPUT.PUT_LINE('INSIDE ELSIF => '||m2.month_val);
    MERGE INTO (SELECT *
    FROM stores_comm_mob_sub_info
    SUBPARTITION (lv_subpartition_name)) T1 --> Issue Here
    USING (SELECT *
    FROM stores_comm_mob_sub_temp
    WHERE TO_CHAR (batch_create_dt, 'YYYY') =
    m1.orig_year_val
    AND 'M' || TO_CHAR (batch_create_dt, 'MM') =
    m2.month_val) T2
    ON (T1.store_id = T2.store_id
    AND T1.ntlogin = T2.ntlogin)
    WHEN MATCHED
    THEN
    UPDATE SET
    t1.postpaid_totalqty =
    (NVL (t1.postpaid_totalqty, 0)
    + NVL (t2.postpaid_totalqty, 0)),
    t1.sales_transaction_dt =
    GREATEST (
    NVL (t1.sales_transaction_dt,
    t2.sales_transaction_dt),
    NVL (t2.sales_transaction_dt,
    t1.sales_transaction_dt)),
    t1.batch_create_dt =
    GREATEST (
    NVL (t1.batch_create_dt, t2.batch_create_dt),
    NVL (t2.batch_create_dt, t1.batch_create_dt))
    WHEN NOT MATCHED
    THEN
    INSERT (t1.ntlogin,
    t1.first_name,
    t1.last_name,
    t1.job_title,
    t1.store_id,
    t1.batch_create_dt)
    VALUES (t2.ntlogin,
    t2.first_name,
    t2.last_name,
    t2.job_title,
    t2.store_id,
    t2.batch_create_dt);
    END IF;
    END LOOP;
    END LOOP;
    COMMIT;
    end;
    Much appreciate your inputs here.
    Thanks,
    MK.
    (SORRY TO POST THE SAME QUESTION TWICE).
    Edited by: Maddy on May 23, 2013 10:20 PM

    Duplicate question

  • Hello, I want to know if an iPhone purchased in the United States 4S can operate in France. Thank you for your response.

    hello, I want to know if an iPhone purchased in the United States 4S can operate in France. Thank you for your response.
    (unlocked of course). Sorry for my English but I am French

    The officially unlocked GSM version will work just fine. However, that model is currently only available through Apple's online store, I don't believe stock has reached brick/mortar stores yet, you'll have to check.
    Why do you want to purchase in the US? Your warranty & support will only be valid in the US, and you can purchase officially unlocked iPhones in France that have an EU wide warranty. Doesn't make any sense to me.

  • Can I upgrade the solid-state drive in a MacBook Pro with retina display after purchase?

    There used to be an option to upgrade the solid-state drive when configuring a MacBook Pro on the Apple Store online, but it is now gone.  This makes me wonder if Apple's SSDs are built into the computer like the RAM is.  So, is it possible to upgrade the SSD later?  I don't want to pay so much more to upgrade everything else, so I'd love it if it's possible to just upgrade the SSD later.  Thanks!

    You will void the warranty. Here are the available post purchase upgrades. http://eshop.macsales.com/shop/SSD/OWC/Air-Retina/Apple-MacBook-Pro-Retina-2012- Drive-Internal-Flash
    You should order it with as much storage as you can afford rather than doing a post purchase upgrade because of the warranty being voided.
    Message was edited by: BobTheFisherman  Sorry. I just noticed I posted the link to a 2012 retina flash upgrade.
    Here you go http://eshop.macsales.com/item/Other%20World%20Computing/SSDAP12R480/
    Read the specs carefully to ensure this will work for the model Macbook Pro you are getting.

  • Why won't the mission statement box stay in line with content?

    SOURCE CODE:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Untitled Document</title>
    <link rel="stylesheet" type="text/css" href="file:///FIRST 32/AVT 217/iguevara_byethost32/project1/finalpage.css"><link href='http://fonts.googleapis.com/css?family=Skranji:700' rel='stylesheet' type='text/css'>
    </head>
    <body>
    <div id="page">
              <div id="header">
              <div id="mainnav">
        <ul>
        <li>HOME</li>
                  <li>ABOUT</li>
            <li>JUDGES</li>
            <li>SPONSORS</li>
            <li>FAQS</li>
            <li>CONTACT</li>
            <li>FINAL 50</li>
        </ul>
        </div><!--#header ends-->
              <div id="section">
              <div id="subnav">
        <ul>
                  <li>AIGA 50</li>
            <li>EXIBITION</li>
            <li>GUIDELINES</li>
            <li>COST OF ENTRY</li>
            <li>MAILING YOUR WORK</li>
             <li>AIGA 50</li>
        </ul>
        </div>
        <div id="content">
        <h1>What is AIGA 50</h1><br>
        <h2>#29 / Maybe it’s because you love being recognized by your peers.</h2><br>
    <p>We’re proud to announce the 12th biennial AIGA 50, a juried exhibition that showcases 50 of the strongest examples of design produced in our region during the past two years. Our panel of judges, experts and leaders in design, will evaluate work from print, narrative, and interactive media.</p><br>
    <p>So rack your brain, raid your files, and dust off your best work. How much have you produced in the past 730 days? You might not have hit every one out of the park, but you know which pieces hit the sweet spot. This is your chance to share your design home runs with your peers and the community.</p><br>
    <p>Whether or not you make the final 50, your work will be featured in the online gallery, where every single piece submitted can be shared, liked and discussed. We’ll recognize the winners on April 25, 2012 in an exhibition and reception in the Atrium of the Corcoran Gallery of Art in Washington, D.C. Show us why you’re a designer by presenting your proudest accomplishments to the DC design community. Enter AIGA 50 by October 28.</p><br>
    <p>Follow along with AIGA 50 on facebook or twitter, using the hashtag #aiga50.</p><br>
              </div>
        <div id="mission">
              <h3>AIGA Mission Statement</h3><br>
    <p>AIGA, the professional association for design, is committed to furthering excellence in design as a broadly defined discipline, strategic tool for business and cultural force. AIGA is the place design professionals turn to first to exchange ideas and information, participate in critical analysis and research and advance education and ethical practice</p></div>
        </div><!--#section ends-->
        <div id="footer">
        © Copyright 2013 AIGA, the professional association for design, Washington, DC Chapter
        </div>
    </div><!--#page ends-->
    </body>
    </html>
    STYLE SHEET:
    @charset "UTF-8";
    /* CSS Document */
    /* http://meyerweb.com/eric/tools/css/reset/
       v2.0 | 20110126
       License: none (public domain)
    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup,
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
              margin: 0;
              padding: 0;
              border: 0;
              font-size: 100%;
              font: inherit;
              vertical-align: baseline;
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure,
    footer, header, hgroup, menu, nav, section {
              display: block;
    body {
              line-height: 1;
              background-color:#000;
    ol, ul {
              list-style: none;
    blockquote, q {
              quotes: none;
    blockquote:before, blockquote:after,
    q:before, q:after {
              content: '';
              content: none;
    table {
              border-collapse: collapse;
              border-spacing: 0;
    body {
      background: url(960image.png) no-repeat top left 100px fixed;
    #page {
              width:960px;
              background:#000;
    #header {
              width:960px;
              float:left;
    #section {
              width:960px;
              color:#FFF;
    #footer {
              width:960px;
              clear:both;
              padding-bottom:53px;
              color:#FFF;
    #mainnav {
               width:690px;
               padding-left:270px;
               color:#FFF;
               padding-bottom:98px;
    #subnav {
              width:270px;
              padding-top:239px;
              font-family:Arial, Helvetica, sans-serif;
              color:#fFF;
              float:left;
    #subnav li {
              padding-top:10px;
              padding-left:23px;
              padding-bottom:10px;
    #content {
              width:482px;
              margin-left:270px;
              padding-bottom:181px;
    #mission {
              width:182px;
              margin-left:779px;
              color:#FFF;
    #mainnav li {
              display:inline;
              padding-right:10px;
    H1 {
              color:#FFF;
    H2 {
              color:#FFF;

    Thank you! Well that helped get them in line with each other the only problem is now for some reason the mission statement is to the left of the content information and the mission statement is supposed to be to the right. Sorry I am obviously a beginner and I'm sure its something simple but I have no idea what I'm doing wrong. 
    This is how I changed the style sheet:
    #content {
              width:482px;
              float: right;
              padding-bottom:181px;
    #mission {
              width:182px;
              color:#FFF;
              float:right;
    Now it looks like this:

  • I purchased the Brookstone DLP projector for the iPhone, and all the reviews state the iPhone 4S can be mirrored with it. However, I can't not figure out how to do so. Is there a setting to change? Can't figure it out! ARGGG!

    I purchased the Brookstone DLP projector for the iPhone, and all the reviews state the iPhone 4S can be mirrored with it. However, I can't not figure out how to do so. Is there a setting to change? Can't figure it out! ARGGG!
    It will show pictures and videos if I choose, Start Slideshow, but it won't show anything else, no apps, etc.
    Here's a few examples of the reviews which state it mirrors:
    http://www.bgr.com/2011/11/07/brookstone-pocket-projector-for-iphone-4-and-4s-re view/
    http://www.gadgetaddict.info/brookstone-pocket-projector-for-iphone-4-and-4s-rev iew/
    I bought this for video analysis presentations with an app on the phone, so this is a key feature for me.
    Any help is appreciated.
    Jim

    I also have not figured out how to mirrow either.  I ask you both, is the sound via the projector louder than the phone itself when projector is tuerned off?  No matter what I do the max vilume through the projector speakers is lower that the phone itself even with phone remaining installed in projector.  I am think of taking it back to try another one.
    Keith

  • Usage of binary key in the read statement

    Hi Experts,
       For usage of binary search in the read statement, what is the minimum number of records (availablity) should be available in the internal table itab as per the below Example..
    SYNTAX: Read table itab with key X binary search.
    For eg: we have to use 16 primary keys only while creating a table.
    Regards,
    Maha

    Hi Pushpraj,
    I am sorry to say this. I am not at all speaking about the number of keys  in the read statement.
    I am talking abt "number of records to be there in the internal table to use binary search"
    Generally, we use binary search when there is more data in the internal table. Can u specify what is the minimum records available in the internal table for using the binary search???
    For Eg: Read table itab with key X binary search.
    Iam talking abt the number of records in the internal table ITAB available if we want to use BINARY SEARCH(keyword).

  • I converted the movie, but no sound

    I converted the movie, but no sound
    the movie was converted from mpg. to m4v.
    any reason?
    btw, to convert 3 minutes of video takes like 30 minutes!

    I have started using HandBreak to convert my DVDs.
    I am currently using the Linux command line version and wrote a script to mass convert all my DVDs and its doing a really good job and taking about 1/2-3/4 hour to convert 1 DVD.
    There are windows and mac versions of the program too.
    http://www.discoveriphone.co.uk/index.php?title=Dvd2iPhone_Linux

  • Using & in the SQL statements

    Hi,
    I have a big sql file which contains a lot of insert statements and one of the columns which contains customer details the value can be 'Mr & Mrs xxx'. when i am running this from SQl*PLUS whenever the insert statement with a value like this comes up i am being prompted to enter a value for Mrs ... Can i set any parameter in Sql*plus so that sql*plus ignores the & and inserts the record.
    Thanks in advance

    Since scan seems obsolete in 10gR2, work with :<br>
    set define off<br>
    <br>
    Nicolas.<br>
    <br>
    James has already answered, sorry.<br>
    Message was edited by: <br>
    N. Gasparotto

  • S the Apple system in the United States is different??

    I went to the branch and they told me we will change your iPhone
    But then they told me where you bought your iPhone I told them from the Middle East
    We are sorry we can notchange your iphone because you bought it from the Middle East
    Been visiting the branch twice
    My friend bought using his iPhone from the Middle East, there was a problem and was replaced him from Denver
    My friend and I have a number and all the details ....
    I want to know why his iphone was change , but was rejected change my  iPhone
    My question
    Is the Apple system in the United States is different??

    Hi Mick ...
    Check out this suppoort article   >   Apple IDs and iCloud

  • Two statements, get results from the first statement?

    Ok maybe I made it sound a little harder than it is, but this is what I am trying to do. I have a result set from from a database call when I pass in the username and password . In the 1st call I get the Users info: User_ID, first_name, lastname, etc...
    But I either need to get info from the first statement, and pass it to the 2nd statement or just do two statement calls calling the same info and passing it to my user object? I dont know which if any is faster, or better. The only thing I need from the first statement is the user_id. In the 2nd statement I need the user_id to find out the user permissions.
    Here is the original code when It was getting the user info and permissions from the same table. try
               dba = new DbAccess();
               java.sql.Connection con = dba.getConnection();          
    java.sql.DriverManager.getConnection("jdbc:oracle:thin:@kares:1523:appd","user","pass");  
               ps = con.prepareStatement("SELECT USER_ID, LAST_NAME, FIRST_NAME, LOGIN, PASSWORD," +
               "X, Y, Z FROM RD_USERS WHERE LOGIN=? and PASSWORD=?");
               ps.setString(1, user);
               ps.setString(2, pass);
               rs = ps.executeQuery();
               // set the user attributes
               if ( rs.next() )
                  loginValid = true;
                  setUserId(rs.getInt("USER_ID"));
                  setLastName(rs.getString("LAST_NAME"));
                  setFirstName(rs.getString("FIRST_NAME"));
                  setLoginName(rs.getString("LOGIN"));
                  setPassword(rs.getString("PASSWORD"));   
                  X = rs.getBoolean("X");
                  setX(X);
                  Y = rs.getBoolean("Y");
                  setY(Y);
                  Z = rs.getBoolean("Z");
                  setZ(Z);
               else
                  setLastName(null);
                  setFirstName(null);
                  setLoginName(null);
                  setPassword(null);
                  setX(false);
                  setY(false);
                  setZ(false);
               rs.close(); rs = null;
               ps.close(); ps = null;
               //dba.close(); dba = null;
            } The code above gets the info from one table, I now need to get the X, Y, and Z from a different table, but I need the USER_ID first. So, the first table is set up with the user_id and user info, and the 2nd table is set up with the user_id and user permissions

    Thanks DrClap I started on the the query and I did it a little differently, but it should hopefull do the same thing. my tables are constructed as so:
    USER
         USER_ID
         FIRST_NAME
         LAST_NAME
         USER_NAME
         PASSWORD
         ETC....
    USER_PERMISSIONS
         USER_ID
         PERMISSION X
         PERMISSION Y
         PERMISSION Z
         ETC....
    My Select looks something like this
    ps = con.prepareStatement("SELECT a.USER_ID, a.LAST_NAME, a.FIRST_NAME, a.USER_NAME, a.USER_PASSWORD," +
               "b.X, b.Y, b.Z FROM RD_USERS a, RD_PERMISSIONS b WHERE USER_NAME=? and USER_PASSWORD=?");
    This is where I come to a crossroads, Can I add on another AND to say "WHERE a.USER_ID = b.USER_ID
    and do I use the =, or is it ==, or .equals(). Thanks in advance.
    orozcom

  • Errors using weblogic sql driver: "No JDBC connection can be made because the transaction state is marked rollback"

    One of our customers starts to encounter this error message recently.
    We checked our log files. It seems that the error happens when
    to obtain a jdbc connection. Have anyone seen similar problems
    and knows how to fix it? thanks in advance.
    We are using weblogic server 6.1sp2, and weblogic sql type 4 driver.
    The functions that invoke the jdbc calls are stateless session bean
    methods with their transaction attributes marked as Required.
    There is no nested calls of these methods.
    A partial stack trace we obtained is as following:
    java.sql.SQLException: No JDBC connection can be made
    because the transaction state is
    Marked Rollback
         at weblogic.jdbc.jts.Connection.getOrCreateConnection(Connection.java:586)
         at weblogic.jdbc.jts.Connection.prepareStatement(Connection.java:115)
         at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
         at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
    lixin

    Joseph Weinstein <[email protected]> wrote:
    >
    >
    YuanHui Liu wrote:
    Joe,
    We got the exact same error message. The error came after we got theJDBC connection,
    and trying to create statement off it.
    It occurs intermitently when we are running another standalone JAVAapp to do
    some end of day work, which results in the DB Server being very busy(90+%CPU
    usage) for about 5 minutes. We see a surge of requests to the WLSJDBC Connection
    pool. This would sometimes result in all our subsequent DB requeststo fail and
    lead to a crash.
    We are using WLS6.0SP1. I do not think there's a 30 seconds wait leadingto a
    connection timeout that caused this(rather it is the end effect).
    Can you give us a more detailed explanation? Is there a miscommunicationbetween
    our DB(Sybase12) and WLS?Hi. It looks to you like it's after you get the connection, but really
    it's when the server is
    gettng the pool connection. For performance/synchronization reasons we
    do a clever
    delay: When your code asks for a pool connection we quickly give you
    the pool wrapper,
    but we delay actually reserving the real underlying DBMS connection until
    your first
    real need for a connection, at your first JDBC call, such as createStatement()
    etc.
    It is while waiting for a pool connection long enough for the transaction
    coordinator
    to have timed you out before you ever get a chance. It's nothing to do
    with the
    DBMS or even JDBC, I believe. I think the weblogic server either has
    too few execute-threads
    and/or too few CPU cycles to do the work load.
    Okay, so there's a lazy initialization of the connection.
    From reading our log I believe our failur is immediate rather
    than waiting for 30+ seconds(the default setting) from the DB,
    the timeout occurred later as a result. At the time either because the DB Server
    is very busy.
    Since we are running WLS6.0 we have only one connection pool,
    we have defined a max of 150 threads in the pool. While this
    is happening the DB Server is being pinned by an overnight job,
    but the WLS Server is not busy at all. The DB and WLS resides
    on different physical boxes.
    We also have a thread dump from the WLS console when we rebooted the server, it
    showed that we are hanging on to the thread & jdbc
    connections after these exceptions has occurred instead of releasing them, note
    "16083"(~4.5 hours) seconds has passed:
    142 116222 Retry rollback request for tx: 'transaction=(IdHash=2963855,Name =
    [EJB UserManagerBeanImpl.signalICUserServletHeartBeat()],Xid=30643:8f3838f3709bf53d,Status=Rolling
    Back. [Reason = Unknown],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since
    begin=16083,seconds left=10,ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=started,assigned=server),SCInfo[server]=(state=active),properties=({weblogic.jdbc=t3://159.55.158.25:8005,
    weblogic.transaction.name=[EJB UserManagerBeanImpl.signalICUserServletHeartBeat()]}))'
    Scheduled Trigger
    So I would argue this problem actually chewed up resources on the WLS server.
    -Yuanhui Liu
    >>
    >>
    Thanks.
    -YuanHui Liu
    Joseph Weinstein <[email protected]> wrote:
    lixin wrote:
    One of our customers starts to encounter this error message recently.
    We checked our log files. It seems that the error happens when
    to obtain a jdbc connection. Have anyone seen similar problems
    and knows how to fix it? thanks in advance.
    We are using weblogic server 6.1sp2, and weblogic sql type 4 driver.
    The functions that invoke the jdbc calls are stateless session bean
    methods with their transaction attributes marked as Required.
    There is no nested calls of these methods.
    A partial stack trace we obtained is as following:
    java.sql.SQLException: No JDBC connection can be made
    because the transaction state is
    Marked Rollback
    at weblogic.jdbc.jts.Connection.getOrCreateConnection(Connection.java:586)Hi. This sounds like a JVM thread starvation issue, and/or a server
    load
    issue. What is
    happening is that the transaction is started, and times out beforethe
    SSB even gets to
    the first JDBC work. I would first verify that the customer is using
    the very latest JVM
    available for the machine.
    Joe Weinstein
    at weblogic.jdbc.jts.Connection.prepareStatement(Connection.java:115)
    at weblogic.jdbc.rmi.internal.ConnectionImpl.prepareStatement(ConnectionImpl.java:135)
    at weblogic.jdbc.rmi.SerialConnection.prepareStatement(SerialConnection.java:76)
    lixin

  • Can't connect to my itunes because the message states that another user is using my itunes when thi is not true.

    I can not connect to my itunes account because the message states that another user in using the account and this is not true.

    After a visit to the apple store, they were able to get through my pass code but unfortunately I found out that is was a problem with the logic board. Since Apple only wants to sell and not fix, I was able to locate an iphone repair near me that deals with logic boards and they are currently working on it right now. i should be getting it back soon. Im not sure if the problem you are experiencing is the same as i went through but it does sound like it may be also a hardware issue and would suggest searching online for an iphone repair place that can diagnose what exactly is wrong. Hope this helps.

Maybe you are looking for

  • Application Loader Is Now Empty. What Happened?

    Hello I finally grew up from windows mobile and went to Verizon and upgraded to a Blackberry Storm 9530. The software in the box was version 4.7 which seems to be the most up to date. I installed it and hooked up my Storm a couple of times and the Ap

  • Opening Document in Asset Library that is not a photo

    Hi, I am having an issue with my asset library.  When in a document library, you can click on the link to a document and it opens up the document straight from that page.  However, I needed to create an asset library because we have some photos in ou

  • Duplicate dvd

    I created a dvd using idvd but did not save the project. Of course, now I have a need to make another copy of that dvd. I have the original dvd. What's the easiest way to make a duplicate. I've tried just ripping the dvd to the desktop using mactheri

  • Regarding mm n wms

    hi all what is the role of movement type in mm or in wms, why it is used? rgds brijesh

  • Quicktime Causes Computer to Slow Down/Lock Up

    Hello, for the past few days, I've encountered an odd problem with Quicktime. When I try loading .mov and .m4v files, Quicktime will cause my computer to lockup for a few seconds then go back to normal. If I attempt to even move the window around, my